Linux Shell 상용 기술 (3) 흐름 편집기 sed

16660 단어
sed 프로필 sed 는 stream editor 의 줄 임 말 로 스 트림 편집기 로 한 줄 의 내용 을 처리 합 니 다.처리 할 때 현재 처 리 된 줄 을 임시 버퍼 에 저장 하여 '패턴 공간' (pattern space) 이 라 고 부 릅 니 다. 이 어 sed 명령 으로 버퍼 의 내용 을 처리 하고 처리 가 완료 되면 버퍼 의 내용 을 화면 으로 보 냅 니 다.이 어 다음 줄 을 처리 하고 파일 이 끝 날 때 까지 반복 합 니 다.파일 내용 은 변경 되 지 않 았 습 니 다. 리 셋 저장 소 출력 을 사용 하지 않 는 한.sed 는 주로 하나 이상 의 파일 을 자동 으로 편집 하고 파일 에 대한 반복 작업 을 간소화 하 며 변환 프로그램 을 작성 하 는 데 사 용 됩 니 다.
sed 명령 형식
sed [nefri] 'command' file(s)

일반 옵션:
명령 하 다.
기능 설명
-n
조용 (silent) 모드 를 사용 합 니 다.일반 sed 의 용법 에 서 는 stdin 에서 온 모든 자 료 를 화면 에 표시 하지만 - n 인 자 를 더 하면 sed 특수 처 리 를 거 친 줄 (또는 command) 만 열 거 됩 니 다.
-e
다 중 편집 허용.
-f
sed 의 동작 을 파일 에 직접 쓰 고 - f filename 은 filename 의 sed 동작 을 수행 할 수 있 습 니 다.
-r
sed 의 동작 은 연장 형 정규 표현법 의 문법 을 지원 한다.(프 리 셋 은 기초 정규 표현 프랑스어 법)
-i
화면 으로 출력 하 는 것 이 아니 라 읽 은 파일 내용 을 직접 수정 합 니 다.
상용 명령:
명령 하 다.
기능 설명
a\
새로 추 가 됩 니 다. a 의 뒤에 문자열 을 연결 할 수 있 습 니 다. 이 문자열 들 은 새로운 줄 에 나타 납 니 다 (현재 다음 줄).
c\
대신 c 의 뒤에 문자열 을 연결 할 수 있 습 니 다. 이 문자열 들 은 n1, n2 사이 의 줄 을 대체 할 수 있 습 니 다.
d
삭제, 삭제 이기 때문에 d 뒤 에는 보통 어떤 쿵쿵 도 받 지 않 습 니 다.
i\
삽입, i 뒤에 문자열 을 연결 할 수 있 습 니 다. 이 문자열 들 은 새로운 줄 에 나타 납 니 다 (현재 이전 줄).
p
인쇄 도 곧 어떤 선택의 자 료 를 인쇄 할 것 이다.보통 p 는 인자 sed - n 과 함께 작 동 합 니 다.
s
대신, 직접 대체 할 수 있 는 일 이 잖 아!보통 이 s 의 동작 은 정규 표현법 과 어 울 릴 수 있다!예 를 들 어 1, 20s/old/new/g 이면 됩 니 다.
고급 명령:
명령 하 다.
기능 설명
h
pattern space 의 내용 을 holding buffer (특수 버퍼) 로 복사 합 니 다.
H
pattern space 의 내용 을 holding buffer 에 추가 합 니 다.
g
holding buffer 의 내용 을 가 져 오고 현재 pattern space 의 텍스트 를 대체 합 니 다.
G
holding buffer 의 내용 을 가 져 와 현재 pattern space 뒤에 추가 합 니 다.
n
다음 입력 줄 을 읽 고 첫 번 째 명령 이 아 닌 다음 명령 으로 새 줄 을 처리 합 니 다.
P
pattern space 의 첫 줄 을 인쇄 합 니 다./대문자
q
sed 를 종료 합 니 다.
w file
파일 의 끝 에 pattern space 를 쓰 고 추가 합 니 다.
!
뒤의 명령 이 선택 되 지 않 은 모든 줄 에 작용 한 다 는 것 을 나타 낸다.
s/re/string
정규 표현 식 re 를 string 으로 대체 합 니 다.
=
현재 줄 번 호 를 인쇄 합 니 다.
대체 태그
g
줄 내 전면 교체, g 가 없 으 면 첫 번 째 일치 만 교체 합 니 다.
x
pattern space 와 holding buffer 의 텍스트 를 교환 합 니 다.
y
한 문 자 를 다른 문자 로 번역 합 니 다.
설명 이 필요 한 것 은 sed 의 정규 와 grep 의 기본 이 같 고 본 시리즈 의 첫 번 째 편 에서 상세 한 설명 을 참조 할 수 있다 는 것 이다.
실례
# cat testfile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13

인 스 턴 스 1.1: 템 플 릿 north 가 찾 으 면 sed 는 모든 줄 을 인쇄 하 는 것 외 에 도 일치 하 는 줄 을 인쇄 합 니 다.

sed '/north/p' testfile

northwest NW Charles Main 3.0 .98 3 34
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13

 
**  1.2:**-n     sed     。   -n   ,           ,     -n             。 **

sed -n '/north/p' testfile

northwest NW Charles Main 3.0 .98 3 34
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9

 
**  :**   5-7 

# nl testfile |sed -n '5,7p'

5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13

**  2.1:**     ,          。

nl testfile |sed '3d'

1 northwest NW Charles Main 3.0 .98 3 34
2 western WE Sharon Gray 5.3 .97 5 23
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

 
**  2.2:**  2~5 

nl testfile |sed '2,5d'

1 northwest NW Charles Main 3.0 .98 3 34
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

**  2.3:**           ,      。$      。

nl testfile |sed '3,$d'

1 northwest NW Charles Main 3.0 .98 3 34 2 western WE Sharon Gray 5.3 .97 5 23

 
**  2.4:**      ,     。

# nl testfile |sed '$d'

1 northwest NW Charles Main 3.0 .98 3 34
2 western WE Sharon Gray 5.3 .97 5 23
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9

**  2.5:**      north  ,     。

# nl testfile |sed '/north/d'

2 western WE Sharon Gray 5.3 .97 5 23
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
9 central CT Ann Stephens 5.7 .94 5 13

 
**  3.1:     (      )  "United States"**

nl testfile |sed '2a United States'

1 northwest NW Charles Main 3.0 .98 3 34
2 western WE Sharon Gray 5.3 .97 5 23United States
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

nl testfile |sed '2i United States'


**  3.2:           。**

nl testfile |sed '2a United States > America'

1 northwest NW Charles Main 3.0 .98 3 34
2 western WE Sharon Gray 5.3 .97 5 23United States America
3 southwest SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13


      ,              “\”        。
 
**  4.1:  2~5       “No 2-5 number”。**

nl testfile |sed '2,5c No 2-5 number'

1 northwest NW Charles Main 3.0 .98 3 34No 2-5 number
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

 
**  3.1:s    ,g            。        west,      north,    g,          。**
**  :**sed 's/       /     /g'

nl testfile |sed 's/west/north/g'

1 northnorth NW Charles Main 3.0 .98 3 34
2 northern WE Sharon Gray 5.3 .97 5 23
3 southnorth SW Lewis Dalsass 2.7 .8 2 18
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
6 eastern EA TB Savage 4.4 .84 5 20
7 northeast NE AM Main Jr. 5.1 .94 3 13
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13

 
**  3.2:-n        ,         west,    north。**
````**

sed -n 's/^west/north/p' testfile

northern WE Sharon Gray 5.3 .97 5 23

 
**  3.3:&                。           ,              ,    .5。**

nl testfile |sed 's/[0-9][0-9]$/&.5/'

1 northwest NW Charles Main 3.0 .98 3 34.5
2 western WE Sharon Gray 5.3 .97 5 23.5
3 southwest SW Lewis Dalsass 2.7 .8 2 18.5
4 southern SO Suan Chin 5.1 .95 4 15.5
5 southeast SE Patricia Hemenway 4.0 .7 4 17.5
6 eastern EA TB Savage 4.4 .84 5 20.5
7 northeast NE AM Main Jr. 5.1 .94 3 13.5
8 north NO Margot Weber 4.5 .89 5 9
9 central CT Ann Stephens 5.7 .94 5 13.5

 
**  3.4:   Hemenway    Jones。-n   p           。**

nl testfile |sed -n 's/Hemenway/Jones/gp'

5 southeast SE Patricia Jones 4.0 .7 4 17

 
**  3.5:  Mar         ,            tag **
1,       \1     ,Margot    Marlianne。 

nl testfile |sed -n 's/(Mar)got/\1lianne/p'

8 north NO Marlianne Weber 4.5 .89 5 9

**  3.6:s                         ,     ,   s            。         s           。                  ,            。
**
````
# sed 's#3#88#g' testfile 
````
````
northwest NW Charles Main 88.0 .98 88 884western WE Sharon Gray 5.88 .97 5 288southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 88 188north NO Margot Weber 4.5 .89 5 9central CT Ann Stephens 5.7 .94 5 188
```` 
 
````
# sed 's@3@88@g' testfile
````
````
northwest NW Charles Main 88.0 .98 88 884western WE Sharon Gray 5.88 .97 5 288southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 88 188north NO Margot Weber 4.5 .89 5 9central CT Ann Stephens 5.7 .94 5 188
````
 
**  3.7:     west east             ,  west   east     , west      east,     east     ,          ,   west             east,   west           。**
````
# nl testfile |sed -n '/south/,/east/p'
````
````
3 southwest SW Lewis Dalsass 2.7 .8 2 18 
4 southern SO Suan Chin 5.1 .95 4 15
5 southeast SE Patricia Hemenway 4.0 .7 4 17
```` 
**  3.8:             northeast          。**
````
# sed -n '5,/^northeast/p' testfile
southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13
````
**  3.9:-e        。                。         Jones  Hemenway。**
````
# nl testfile |sed -e '1,3d' -e 's/Hemenway/Jones/'
````
````
 4 southern SO Suan Chin 5.1 .95 4 15 5 southeast SE Patricia Jones 4.0 .7 4 17 6 eastern EA TB Savage 4.4 .84 5 20 7 northeast NE AM Main Jr. 5.1 .94 3 13 8 north NO Margot Weber 4.5 .89 5 9 9 central CT Ann Stephens 5.7 .94 5 13
```` 
**  3.10:       north    newfile 。**
````
# sed -n '/north/w newfile' testfile
````
````
# cat newfile
northwest NW Charles Main 3.0 .98 3 34northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9
````
**  4.1:i     ,           。**
````
# sed '/eastern/i\NEW ENGLAND REGION' testfile 
````
````
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17NEW ENGLAND REGIONeastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9central CT Ann Stephens 5.7 .94 5 13
```` 
**  5.1:      eastern   ,             ,           ,n            ,s/AM/Archie/  Archie AM   ,p -n     ,          。**
````
# sed -n '/eastern/{n;s/AM/Archie/;p}' testfile
````
````
northeast NE Archie Main Jr. 5.1 .94 3 13
````
**  :-e      ,       y                   ,-n           ,                     。  y      。**
````
# sed -n -e '1,3y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' -e '1,3p' testfile
````
````
NORTHWEST NW CHARLES MAIN 3.0 .98 3 34WESTERN WE SHARON GRAY 5.3 .97 5 23SOUTHWEST SW LEWIS DALSASS 2.7 .8 2 18
````
**  :         。**
````
# sed '2q' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23
````
**  :   Lewis       ,       Lewis   Joseph,    q  sed。**
````
# sed '/Lewis/{s/Lewis/Joseph/;q;}' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23southwest SW Joseph Dalsass 2.7 .8 2 18
````
**  : sed       ,        pattern space       。             ,                  。  pattern space   ,           。       ,     northeast    ,    pattern space ,h             holding buffer       。    sed     ,        ,G    sed holding buffer     ,       pattern space ,                    。**
````
# sed -e '/northeast/h' -e '$G' testfile
````
```` 
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9central CT Ann Stephens 5.7 .94 5 13northeast NE AM Main Jr. 5.1 .94 3 13
```` 
**  :    WE       ,h        pattern space    holding buffer ,d        ,  WE              。       CT,     ,G    holding buffer    ,      pattern space    。    ,WE             CT    。**
````
# sed -e '/WE/{h;d;}' -e '/CT/{G;}' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9central CT Ann Stephens 5.7 .94 5 13western WE Sharon Gray 5.3 .97 5 23
```` 
**  :        northeast   pattern space   holding buffer,               ,g    sed holding buffer    ,      pattern space ,        pattern space  。         northeast               。**
````
# sed -e '/northeast/h' -e '$g' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9northeast NE AM Main Jr. 5.1 .94 3 13
```` 
**  :  WE     h     holding buffer,  d    。      WE         。            CT  ,g     holding buffer   ,     pattern space   ,   CT  。    ,      northeast       ,     CT  。**
````
# sed -e '/WE/{h;d;}' -e '/CT/{g;}' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13north NO Margot Weber 4.5 .89 5 9western WE Sharon Gray 5.3 .97 5 23
```` 
**  :       h     Patricia     holding buffer ,       x  ,  holding buffer       pattern space , pattern space        holding buffer 。       Margot       holding buffer    ,         Patricia    ,             holding buffer                。**
````
# sed -e '/Patricia/h' -e '/Margot/x' -e '$G' testfile
````
````
northwest NW Charles Main 3.0 .98 3 34western WE Sharon Gray 5.3 .97 5 23southwest SW Lewis Dalsass 2.7 .8 2 18southern SO Suan Chin 5.1 .95 4 15southeast SE Patricia Hemenway 4.0 .7 4 17eastern EA TB Savage 4.4 .84 5 20northeast NE AM Main Jr. 5.1 .94 3 13southeast SE Patricia Hemenway 4.0 .7 4 17central CT Ann Stephens 5.7 .94 5 13north NO Margot Weber 4.5 .89 5 9
````

좋은 웹페이지 즐겨찾기