텍스트 파일에서 특정한 문자열이 포함된 행을 삭제하고 싶을 경우, sed에서 간단하게 작업이 가능하다. 삭제하고자 하는 문자열을 "/문자열/d" 형태로 지정해 주면 된다. 아래의 예시를 보자.
# my_data.txt 파일에서 "abcdefg"가 포함된 행을 제거하고 화면에 출력
sed '/abcdefg/d' my_data.txt
위의 명령을 실행하면 my_data.txt 파일에서 문자열 "abcdefg"가 있는 행을 제거한 후 화면에 결과를 출력한다. 파일 자체를 수정하여 저장하고 싶다면 -i 옵션을 추가하자. (-i 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로)
# my_data.txt 파일에서 "abcdefg"가 포함된 행을 삭제하고 저장
sed -i '/abcdefg/d' my_data.txt
sed 활용에 대한 다른 게시물은 여기로
# my_data.txt 파일에서 "abcdefg"가 포함된 행을 제거하고 화면에 출력
sed '/abcdefg/d' my_data.txt
위의 명령을 실행하면 my_data.txt 파일에서 문자열 "abcdefg"가 있는 행을 제거한 후 화면에 결과를 출력한다. 파일 자체를 수정하여 저장하고 싶다면 -i 옵션을 추가하자. (-i 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로)
# my_data.txt 파일에서 "abcdefg"가 포함된 행을 삭제하고 저장
sed -i '/abcdefg/d' my_data.txt
sed 활용에 대한 다른 게시물은 여기로
덧글
인터넷, 스택오버플로우를 찾아 보았습니다.
grep -v abcd file >file1
처럼 하시면 file에 포함된 abcd 를 제거한 모든 라인들을 새로운 파일 file1 에 받을 수 있습니다.
awk 명령어는 다음과 같습니다.
awk '!/abcd/{print}' file > file1