SED 명령어

이승우·2025년 4월 21일

sed는 쉘 리다이렉션을 이용해 편집 결과를 저장하기 전까지는 파일에 변경을 가하지 않음

sed [옵션] '명령어' 파일명

옵션

-n : 자동 출력 끄기
-i : 파일 수정
-e : 여러 명령 실행 (sed -e 'cmd1' -e 'cmd2')
-r : 확장 정규식 사용

플래그

g: 모든 부분 다 적용(안쓰면 첫번째만 치환됨)
i: 대소문자 무시
r: 파일 내용을 현재 줄에 삽입
ex) sed '2r firstfile.txt' secondfile.txt #두번째 줄 뒤에 fistfile.txt
w: 출력 결과를 파일로 저장
ex) sed 's/foo/bar/' file.txt w output.txt
a: 현재 줄 뒤에 텍스트 추가
ex) sed '2a This is a new line' file.txt

명령어

  • s: 치환
    sed 's/찾을패턴/바꿀문자/[플래그]' 파일이름

  • d: 줄 삭제
    ex) sed '3,$d' add1.txt #3번째부터 마지막줄까지 삭제
    ex) sed '3,6d' add1.txt #3번째부터 6번째줄까지 삭제
    ex) sed '3~2d' add1.txt #3번째부터 2줄 간격으로 삭제

  • a,i: 추가
    sed 'a\추가할텍스트' file # 지정 줄 다음 줄에 추가
    sed 'i\삽입할텍스트' file # 지정 줄 앞 줄에 삽입

  • p: 해당 줄 출력
    (sed 실행하면 기본적으로 다 출력되어서 -n(출력 안해주는 옵션) 적용하고 p 사용함
    ex) sed -n '2p' add1.txt #2번째 줄 출력

  • n: 현재 줄 출력하고 ;뒤에 오는 거는 현재의 다음줄에 적용
    ex) sed 'n;d' add1.txt #홀수줄

0개의 댓글