Notice
Recent Posts
관리 메뉴

Hacking Arts

[Linux] sed 본문

Computer & ETC/linux

[Linux] sed

Rakehell 2014. 8. 23. 02:10

<Sed>

Sed(Stream Editor) CLI시절 많은 편집 작업을 한번에 처리해주는 적합한 유틸이였다.

sed는 파일을 한행씩 처리하고 작업중인 라인을 패턴 스페이스라는 곳에 저장한다고 함.

 

sed 'command' [filename]

 

d : 행 삭제

h : 패턴스페이스 내용을 홀드스페이스로 복사

H : 패턴스페이스 내용을 홀드스파이스에 추가

g : 홀스 스페이스 내용을 패턴 스페이스로 복사

G : 홀스 스페이스 내용을 패턴스페이스에 추가

p : 행을 출력함

n : 다음 입력

q : sed 종료

r : 파일로 부터 행을 읽어 온다.

! : 선택된 행을 제외한 나머지 전체 행에 명령어를 적용

s : 문자열을 치환함

 

이중에서 중요한건 s와 g이다.

 

★★s : 검색 & 치환

sed s/filename/filename.txt/ filename.txt

이런식으로하면 filename.txt안에 내용중 filename문장을 filename.txt로 치환한다.

 

★★g : global이라는 의미로 전부 라는 뜻이다.

sed s/project/project_name/ prj.txt 이런식으로 하면 두번째 문자열은 바뀌지않는다,

그래서 sed s/project/project_name/g prj.txt 이런식으로 하면 전부 바꿔준다.

 

★★e : e옵션을 쓰면 두개의 다른 문자열을 또다른 두개의 문자열로 바꿀때 사용한다.

즉 aaa,ccc를 bbb,ddd로 바꿀때 sed 's/aaa/ccc/g' -e 's/bbb/ddd/g' filename 이런식으로 바꾸면 된다.


★★\: 부정의의미

sed 's/[Cc\]hoiojae/aaa/g' test.txt 하면 [Cc]hoiojae 를 aaa로 바꾸라는것이다.

sed 's/\/a\/b/\/c/g' test.txt 를 하면 /a/b -> /c 라는 뜻이된다. 

'Computer & ETC > linux' 카테고리의 다른 글

[Linux] 명령어 간략 모음  (0) 2014.08.23
[Linux] nohup,dmesg,col  (0) 2014.08.23
[Linux] Quota(쿼타)  (0) 2014.08.23
[Linux] file system  (0) 2014.08.23
[Linux] 파티션(Partition)  (0) 2014.08.23