-
[Linux] sed 명령어서버 2016. 10. 28. 15:27
sed명령어는 1개 라인씩 입력 라인을 읽어들여 표준출력으로 출력.
sed는 각 라인을 읽을 때마다 ed에서 사용하던 형식의 대치작업을 실행. 일치하는 문자열이 있으면 그 문자열을 대치한 후 출력하고 일치하는 문자열이 없으면 그 라인은 수정되지 않고 그대로 출력.
라인들을 하나씩 읽고, 수정하고, 출력하기 때문에 기억장치 안의 버퍼를 사용하지 않음. 버퍼를 사용하지 않으면 파일의 크기에 제한 없이 작업을 할 수 있음. sed는 아주 큰 파일을 처리할 때 주로 사용됨.
치환
$ sed 's/addrass/address/' list.txt # addrass를 address로 바꿈. 단, 원본파일을 바꾸지 않고 표준출력 $ sed 's/\t/\ /g' list.txt # list파일 내 탭문자를 엔터로 전체 변환
삭제
$ sed '/TD/d' 1.html # TD 문자가 포함된 줄을 삭제하여 출력 $ sed '/Src/!d' 1.html # Src 문자가 있는 줄만 지우지 않는 $ sed '1,2d' 1.html # 처음 1줄, 2줄을 지움 $ sed '/^$/d 1.html # 공백라인을 삭제하는 명령
특정 행 출력
$ sed -n 42p < test.txt # test.txt파일의 42번째 줄 출력