본문 바로가기

리눅스

sed 명령어

반응형

sed 명령어

sed(스트림 편집기)는 대화형 기능이 없는 명령행 편집기로 명령어를 사용하여 파일을 편집하고 결과를 확인합니다. 파일을 직접 수정하지 않고 리다이렉션을 통해 결과를 저장할 수 있습니다.

기본 구문

sed [옵션] 명령어 파일
  • 옵션 : sed의 동작을 제어하는데 사용되는 다양한 옵션을 포함합니다.
  • 명령어 : sed가 수행할 편집 명령을 나타냅니다. 여러 명령어를 세미콜론(;)으로 구분하여 사용할 수 있습니다.
  • 파일 : 편집할 대상이 되는 파일의 이름입니다.

주요 옵션

  • -n 또는 --quiet 또는 --silent : 출력을 생략하고 명령어가 처리한 결과만 출력합니다.
  • -e script 또는 --expression=script : 여러 편집 명령어를 지정할 때 사용합니다.
  • -f script-file 또는 --file=script-file : 파일에 저장된 편집 스크립트를 사용합니다.
  • -i[SUFFIX] 또는 --in-place[=SUFFIX] : 파일을 직접 편집하며 원본 파일을 백업하고 싶다면, 백업 파일의 확장자를 지정합니다.

사용 예시

1. 치환 (Substitution)

  • 파일에서 "apple"을 "orange"로 치환
sed 's/apple/orange/' filename.txt
  • 전체 행에서 첫 번째 "apple"만 "orange"로 치환
sed 's/apple/orange/1' filename.txt
  • 모든 "apple"을 "orange"으로 치환 (글로벌 옵션)
sed 's/apple/orange/g' filename.txt

2. 라인 삭제

  • 파일에서 5번째 라인 삭제
sed '5d' filename.txt
  • 3번째부터 마지막 라인까지 삭제
sed '3,$d' filename.txt
  • 패턴을 포함한 라인 삭제
sed '/pattern/d' filename.txt
728x90

3. 라인 추가 및 삽입

  • 파일의 10번째 라인 뒤에 "New Line" 추가
sed '10a\New Line' filename.txt
  • 파일의 패턴 "apple"을 찾아 그 앞에 "Insert Here" 삽입
sed '/apple/i\Insert Here' filename.txt

4. 패턴 매칭 및 출력

  • 파일에서 "error"를 포함한 라인만 출력
sed -n '/error/p' filename.txt

5. 라인 범위 선택 및 출력

  • 파일의 5번째 라인부터 "pattern"이 나오는 라인까지 출력
sed -n '5,/pattern/p' filename.txt

6. 파일로부터 읽기 및 파일로 쓰기

  • 다른 파일의 내용을 현재 파일에 추가
sed '/pattern/r otherfile.txt' filename.txt
  • 특정 패턴을 포함한 라인을 다른 파일에 저장
sed -n '/pattern/w output.txt' filename.txt

7. 다중 명령어 및 주소 지정

  • 1~3행 삭제 후 "apple"을 "orange"로 치환
sed -e '1,3d' -e 's/apple/orange/' filename.txt

8. 패턴 치환 및 태그 활용

  • "apple" 다음에 있는 단어 "pie"를 "cake"로 바꾸기
sed 's/apple \(pie\)/orange \1/' filename.txt

 

sed는 다양한 텍스트 편집 작업을 처리하는데 사용되며, 이러한 명령어와 옵션을 조합하여 효과적으로 사용할 수 있습니다.

 

728x90
반응형