pbj0812의 코딩 일기

[LINUX] sed 본문

ComputerLanguage_Program/LINUX

[LINUX] sed

pbj0812 2018. 9. 4. 23:03

sed(steam editor) : 텍스트 처리 유틸리티


grep에서처럼 정규표현식 사용


파이프를 이용해서 사용자가 필요로 하는 결과로 재처리 가능.


비대화형 모드 에디터


사용방법 


sed [연산자]


일반적으로 파이프(|)를 이용해 앞에 있는 명령어(a)의 결과를 처리하여 명령어(b)로 전달하는 형태로 많이 활용된다.


명령어 a | sed [연산자] | 명령어 b


하나 이상의 편집 명령을 실행할 때는 -e 옵션을 이용하며, 여러 연산자를 연속해서 처리할 수 있다.


sed -e [연산자1] -e | [연산자2]


sed의 특징

1. sed는 편집하고 있는 파일을 바꾸지 않는다.

2. sed의 연산자들은 입력받은 모든 라인에 적용된다.


옵션

-n : 지정된 문자열과 일치하는 라인만 출력

-e : -e 옵션 다음에 기술되는 문자열을 편집 명령어로 인식

-f : 편집할 명령어 및 연산자를 파일에서 읽어서 처리


출력, 삭제, 치환 기능


지정된 문자를 모두 치환할 때에는 반드시 g 연산자를 같이 사용해야 함.

그렇지 않으면 처음 일치한 문자열만 치환하게 됨.


[범위]/p : 지정된 범위 출력

[범위]/d : 지정된 범위 삭제

s/문자/문자2/ : 한 라인에 처음 나타난 문자를 문자2로 치환

[범위]/문자/문자2/ : 지정된 범위의 처음 나타난 문자를 문자2로 치환

g : 모든 라인에서 입력과 일치하는 패턴에 동작함.


정규표현식

^ : 라인의 처음

$ : 라인의 끝

[] : 하나의 문자 매치

& : 검색 문자열을 치환

\< : 단어의 시작

\> : 단어의 끝

x\{m,n\} : m회 ~n회 사이 반복


예제1 : sed_test 파일중 라인의 처음에 문자열 root가 포함된 라인만 출력되도록 -n 옵션 사용

sed -n "/^root/p" sed_test


예제2 : sed_test 파일의 내용 중 1번부터 19번 라인 삭제

cat -n sed_test | sed 1,19d


예제3 : /test/sed_test 파일의 내용중 문자열 user가 포함된 라인을 ShellScript로 문자열을 치환하고, nologin이 포함된 문자열 모두 삭제

cat -n sed_test | sed -e 's/user/ShellScript/g' -e '/nologin/d'


'ComputerLanguage_Program > LINUX' 카테고리의 다른 글

[LINUX] wc 명령어  (0) 2018.09.04
[LINUX] bc 명령어(계산기)  (0) 2018.09.04
[LINUX] 파일 내용 치환  (0) 2018.09.04
[LINUX] > >> 차이점  (0) 2018.09.04
[LINUX] 터미널 명령어/단축키  (0) 2018.09.04
Comments