sed 용법 상세 설명
형식 1:
\ # sed [옵션] ‘명령 편집 ' 파일 목록 (여러 파일 간 공백 간격)
형식 2:
사전 명령 | sed [옵션] ‘명령 편집 '
2. 흔 한 옵션
1)-n
기본 출력 을 차단 하고 조건 에 맞 는 텍스트 만 출력 합 니 다.
2)-i
문서 내용 을 직접 수정 하 다
정상 적 인 상황 에서 sed 명령 의 처 리 는 작업 결과 (인쇄, 삭제 등 포함) 를 현재 터미널 화면 에 출력 할 뿐 원본 파일 을 변경 하지 않 습 니 다.파일 내용 을 직접 수정 하려 면 옵션 - i 를 추가 할 수 있 습 니 다.
3)-e
여러 처리 동작 을 함께 수행 하 다
- e 를 사용 하지 않 으 면 여러 작업 을 분점 으로 격 리 할 수도 있 습 니 다.
4)-f
sed 스 크 립 트 사용
5)-r
확장 정규 표현 식 사용 하기
3. 명령 편집:
1) 그 중에서 '편집 명령' 은 여과 작업 을 실현 하 는 데 사용 되 고 '[주소 지정 부호] 처리 동작' 으로 구성 된다.
2) '주소 지정 문자' 는 조작 해 야 할 텍스트 를 정의 하 는 데 사용 되 며 '[주소 1, [주소 2]' 로 구성 되 며 주소 1 은 시작 위치 이 고 주소 2 는 끝 위치 이다.
3) '주소 지정 문자' 가 지정 되 지 않 았 을 때 모든 텍스트 를 기본 으로 처리 합 니 다.
4. 처리 동작 (옵션 을 추가 하지 않 으 면 원본 파일 을 수정 하지 않 습 니 다)
1)p
인쇄 줄
(1) inittab 18 번 째 줄 출력
[root@localhost ~]# sed -n '18p' /etc/inittab
id:5:initdefault:
[root@localhost ~]#
(2) inittab 의 45 줄 에서 50 줄 을 출력 합 니 다.
[root@localhost ~]# sed -n '45,50p' /etc/inittab
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
[root@localhost ~]#
(3) 출력 파일 의 4 줄 에서 7 줄 과 4 줄 과 7 줄 만 출력 합 니 다.
[root@localhost ~]# cat -n /etc/passwd | sed -n '4,7p'
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@localhost ~]#
[root@localhost ~]# cat -n /etc/passwd | sed -n '4p;7p'
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@localhost ~]#
(4) 두 번 째 줄 과 그 다음 세 줄 출력
[root@localhost ~]# cat -n /etc/passwd | sed -n '2,+3p'
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost ~]#
(5) mail 로 시작 하 는 줄 출력
첫 번 째 명령 이 성공 하지 못 한 이 유 는 cat 에 - n 매개 변수 로 줄 번 호 를 출력 한 후에 줄 번호 로 시작 하기 때문에 - n 매개 변 수 를 제거 합 니 다.
[root@localhost ~]# cat -n /etc/passwd | sed -n '/^mail/p'
[root@localhost ~]#
[root@localhost ~]# cat /etc/passwd | sed -n '/^mail/p'
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
[root@localhost ~]#
(6) 홀수 줄 이나 짝수 줄 출력
n 은 다음 줄 을 읽 는 것 을 나타 내 고 격 행 작업 의 효 과 를 나타 낸다.
홀수 줄: p; n
짝수 줄: n; p
[root@localhost ~]# cat -n /etc/passwd | sed -n 'p;n'
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
[root@localhost ~]# cat -n /etc/passwd | sed -n 'n;p'
2 bin:x:1:1:bin:/bin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
8 halt:x:7:0:halt:/sbin:/sbin/halt
(7) 마지막 줄 까지 40 줄 출력
[root@localhost ~]# cat -n /etc/passwd | sed -n '35,$p'
35 named:x:25:25:Named:/var/named:/sbin/nologin
36 apache:x:48:48:Apache:/var/www:/sbin/nologin
37 squid:x:23:23::/var/spool/squid:/sbin/nologin
[root@localhost ~]#
(8) 출력 텍스트 의 줄 수
[root@localhost ~]# cat -n /etc/passwd | sed -n '$='
37
[root@localhost ~]#
2) d (옵션 을 추가 하지 않 으 면 원본 파일 을 수정 하지 않 습 니 다)
줄 삭제
(1) 5 줄 에서 8 줄 삭제
[root@localhost ~]# cat -n /etc/passwd | sed '5,8d'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 news:x:9:13:news:/etc/news:
(2) 메 일 줄 포함 부터 3 의 배수 까지 삭제
[root@localhost ~]# cat -n /etc/passwd | sed '/mail/,~3d'
처리 전:
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 news:x:9:13:news:/etc/news:
11 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
12 operator:x:11:0:operator:/root:/sbin/nologin
13 games:x:12:100:games:/usr/games:/sbin/nologin
14 gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
처리 후:
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
13 games:x:12:100:games:/usr/games:/sbin/nologin
14 gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
15 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
16 nobody:x:99:99:Nobody:/:/sbin/nologin
17 nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
(3) 다섯 번 째 줄 부터 4 의 배수 까지 삭제
[root@localhost ~]# cat -n /etc/passwd | sed '5,~4d'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 news:x:9:13:news:/etc/news:
(4) m 줄 을 읽 고 이 m 줄 의 n 줄 을 지 워 라. 나 도 어지럽다 ~
# cat -n passwd | sed 'n~md'
가장 전형 적 인 응용 은 홀수 줄 이나 짝수 줄 을 삭제 하 는 것 이다.
[root@localhost ~]# cat -n /etc/passwd | sed '1~2d'
2 bin:x:1:1:bin:/bin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
8 halt:x:7:0:halt:/sbin:/sbin/halt
10 news:x:9:13:news:/etc/news:
[root@localhost ~]# cat -n /etc/passwd | sed '2~2d'
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
(5) 빈 줄 삭제
[root@localhost ~]# cat -n /etc/passwd | sed '/^$/d'
3) s (옵션 을 추가 하지 않 으 면 원본 파일 을 수정 하지 않 습 니 다)
바꾸다
(1) 형식:
#sed [옵션] ‘[주소 지정 문자] s / 소스 데이터 / 새 데이터 / 옵션 파일 이름
\ # 사전 명령 | sed [옵션] ‘[주소 지정 문자] s / 소스 데이터 / 새 데이터 / 옵션 '
주소 지정 부호:
선택 할 수 있 습 니 다.
원본 데이터:
파일 에 있 는 단어 일 수도 있 고 정규 표현 식 일 수도 있 습 니 다.
(2) 시작 단어 만 바 꾸 기
[root@localhost ~]# cat -n /etc/passwd | sed 's/root/huanglianfeng/g'
1 huanglianfeng:x:0:0:huanglianfeng:/huanglianfeng:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
(3) 각 줄 의 첫 번 째 빈 을 대문자 BIN 으로 교체
[root@localhost ~]# cat -n /etc/passwd | sed 's/bin/BIN/g'
1 root:x:0:0:root:/root:/BIN/bash
2 BIN:x:1:1:BIN:/BIN:/sBIN/nologin
3 daemon:x:2:2:daemon:/sBIN:/sBIN/nologin
4 adm:x:3:4:adm:/var/adm:/sBIN/nologin
(4) 정규 표현 식 의 응용
모든 숫자 삭제:
[root@localhost ~]# cat -n /etc/passwd | sed 's/[0-9]//g'
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
말 해 봐: s 와 d 는 모두 삭제 하 는 역할 을 하지만 그들 이 사용 하 는 지역 은 u 와 다르다.
d. 행위 단위 로 삭 제 된 것 이다. 예 를 들 어 특정한 줄 이나 특정한 줄 을 삭제 하 는 것 이다.
s 는 일부 문 자 를 삭제 하 는 것 입 니 다. 실질 적 으로 빈 문자 로 바 꾸 어 삭제 효 과 를 얻 는 것 입 니 다.
모든 숫자 와 알파벳 삭제 하기:
[root@localhost ~]# cat -n /etc/passwd | sed 's/[0-Z]//g'
:::::/://
:::::/://
:::::/://
::::://://
:::::///://
(5) 한 줄 수정 지정
두 번 째 줄 수정
[root@localhost ~]# cat -n /etc/passwd | sed '2s/bin/BIN/g'
1 root:x:0:0:root:/root:/bin/bash
2 BIN:x:1:1:BIN:/BIN:/sBIN/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
(6) 데이터 교체
원본 데이터 에 / 번호 가 있 습 니 다. 전의 가 필요 합 니 다. 모든 것 이 필요 합 니 다.
[root@localhost ~]# cat -n /etc/passwd | sed 's/\/sbin\/nologin/\/bin\/bash/'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/bin/bash
4 adm:x:3:4:adm:/var/adm:/bin/bash
5 lp:x:4:7:lp:/var/spool/lpd:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
(7) () 후 항 참조, 일치 하 는 데 이 터 를 저장 합 니 다.
IP 주소 네트워크 수정
[root@localhost ~]# sed -r '/^IPADDR/s/192.168.10.(.*)/172.16.16.\1/' /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0c:29:9b:2a:c7
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=172.16.16.2
#GATEWAY=192.168.10.254
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[root@localhost ~]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.