기계는 거짓말하지 않는다

sed 명령어를 이용한 일치하는 패턴이 포함 된 해당 줄 전체를 바꾸기 본문

Linux

sed 명령어를 이용한 일치하는 패턴이 포함 된 해당 줄 전체를 바꾸기

KillinTime 2023. 9. 16. 19:01

특정 패턴이 포함된 줄에서 특정 패턴의 문자만 교체하는 것이 아닌 해당 줄 전체를 바꿔야 할 때가 있다.

다음과 같은 temp.txt 파일에서 특정 패턴(DEF)이 포함된 줄 전체를 REPLACED LINE으로 바꾸고 싶을 경우

line1 ABC
line2 DEF
line3 GHI
line4 ABCDEF
line5 DCBA

예를 들어 line2 DEF와 line4 ABCDEF, 두 줄이 REPLACED LINE으로 바뀌게 하려면

다음과 같이 활용할 수 있다.

# sed '/pattern/c\change string' temp.txt
sed '/DEF/c\REPLACED LINE' temp.txt

출력 결과

위 명령어는 우선 삭제된 결과를 출력하고 실제로 삭제 후 저장까지 완료하고 싶으면 -i 옵션을 사용한다.

sed -i '/DEF/c\REPLACED LINE' temp.txt
Comments