기계는 거짓말하지 않는다

sed 명령어를 이용한 일치하는 패턴 한 줄만 삭제하기 본문

Linux

sed 명령어를 이용한 일치하는 패턴 한 줄만 삭제하기

KillinTime 2023. 9. 16. 18:11

다음과 같은 temp.txt 파일에서 특정 패턴(DEF)이 포함된 문자열을 한 줄만(2번째 라인) 삭제하고 싶을 경우

line1 ABC
line2 DEF
line3 GHI
line4 ABCDEF
line5 DCBA

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

단, GNU sed가 아닌 표준 sed 이면 명령어가 적용되지 않을 수 있다.

# sed '0,/pattern/{/pattern/d}' temp.txt
sed '0,/DEF/{/DEF/d}' temp.txt

출력 결과

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

sed -i '0,/DEF/{/DEF/d}' temp.txt

 

Comments