Linux

[리눅스] sed 명령어 완벽 가이드 사용법(파일 내 문자열 변환)

인생아 2024. 10. 13. 22:59
반응형

sed스트림 편집기로, 파일이나 입력된 텍스트 스트림을 편집하는 데 사용되는 강력한 명령어입니다. 주로 텍스트 대체, 삽입, 삭제 작업을 수행할 때 유용하며, 파일을 직접 수정하지 않고도 데이터를 처리할 수 있다는 장점이 있습니다. 텍스트를 수정할 때 정규 표현식을 지원해 복잡한 패턴 매칭을 할 수 있으며, 이를 통해 강력하고 유연한 텍스트 처리 작업이 가능합니다.

sed 명령어의 기본 사용법

sed 's/찾을_문자열/바꿀_문자열/' 파일명

여기서 ssubstitute(대체)를 의미하며, 찾고자 하는 문자열을 다른 문자열로 바꾸는 역할을 합니다. 기본적으로 sed 명령어는 첫 번째로 매칭된 문자열만 대체합니다.

sed 명령어의 주요 기능

  1. 텍스트 대체: 지정된 패턴에 맞는 텍스트를 다른 텍스트로 교체합니다.
  2. 텍스트 삽입 및 삭제: 특정 행에 텍스트를 삽입하거나 삭제할 수 있습니다.
  3. 파일 전체 변경: 원본 파일을 직접 수정할 수 있도록 옵션을 제공합니다.
  4. 정규 표현식: 복잡한 패턴 매칭이 가능합니다.

sed 명령어 사용 예시

기본 텍스트 대체

user@linux:~/documents$ sed 's/linux/리눅스/' example.txt

example.txt 파일에서 linux라는 단어를 리눅스로 변경합니다. 이때 출력은 표준 출력으로 나타나며, 원본 파일은 수정되지 않습니다.

linux is a powerful operating system.
리눅스 is a powerful operating system.
 

전체 매칭 문자열 변경 (-g 옵션)

기본적으로 sed는 각 줄에서 첫 번째로 매칭된 문자열만 대체합니다. -g 옵션을 사용하면, 해당 줄에서 모든 매칭된 문자열을 대체할 수 있습니다.

user@linux:~/documents$ sed 's/linux/리눅스/g' example.txt

이 명령어는 linux가 여러 번 나오는 경우에도 모두 리눅스로 변경됩니다.

파일을 직접 수정하기 (-i 옵션)

-i 옵션을 사용하면 sed가 원본 파일을 직접 수정합니다.

user@linux:~/documents$ sed -i 's/linux/리눅스/g' example.txt

이 명령어를 실행하면 example.txt 파일의 내용이 영구적으로 변경됩니다.

특정 행에 텍스트 추가

a 옵션을 사용하여 특정 행 뒤에 텍스트를 추가할 수 있습니다.

user@linux:~/documents$ sed '2a\새로운 줄이 추가됩니다.' example.txt

이 명령어는 example.txt 파일의 2번째 줄 뒤에 **"새로운 줄이 추가됩니다."**라는 텍스트를 삽입합니다.

특정 패턴에 맞는 행 삭제

user@linux:~/documents$ sed '/linux/d' example.txt

이 명령어는 linux라는 단어가 포함된 모든 행을 삭제합니다.

리눅스는 강력한 운영체제입니다.

정규 표현식을 이용한 패턴 매칭

sed정규 표현식을 사용하여 복잡한 패턴을 처리할 수 있습니다. 예를 들어, 숫자로 시작하는 행을 모두 삭제하려면 다음과 같이 할 수 있습니다.

user@linux:~/documents$ sed '/^[0-9]/d' example.txt

sed 명령어의 유용성

sed는 파일을 즉시 수정하거나, 일시적으로 수정된 결과를 보여줄 때 유용합니다. 특히 대규모 텍스트 파일에서 특정 패턴을 빠르게 찾고 대체할 때 강력한 도구로 활용할 수 있습니다. 또한, 정규 표현식을 통해 복잡한 텍스트 처리가 가능하므로, 자동화된 스크립트나 데이터 처리 과정에서 필수적인 명령어로 널리 사용됩니다.

참고사이트

반응형