스택큐힙리스트

특정 문자열을 포함하는 모든 줄을 텍스트 파일에서 삭제하는 방법은 무엇인가요? 본문

카테고리 없음

특정 문자열을 포함하는 모든 줄을 텍스트 파일에서 삭제하는 방법은 무엇인가요?

스택큐힙리스트 2023. 3. 22. 15:30
반응형

sed를 사용하여 텍스트 파일에서 지정된 문자열을 포함하는 모든 줄을 삭제하는 방법은 무엇인가요?

답변 1

줄을 제거하고 출력을 표준 출력으로 인쇄하려면:

sed '/pattern to match/d' ./infile

파일을 직접 수정하려면 - BSD sed와 함께 작동하지 않습니다:

sed -i '/pattern to match/d' ./infile

동일하나, BSD sed (Mac OS X 및 FreeBSD)용 - GNU sed와 함께 작동하지 않습니다.

sed -i '' '/pattern to match/d' ./infile

파일을 직접 수정하고 백업을 만들 수 있습니다. (BSD 및 GNU sed와 함께 작동합니다.)

sed -i.bak '/pattern to match/d' ./infile

답변 2

특정 문자열이 포함된 모든 줄을 텍스트 파일에서 제거하는 방법

텍스트 파일에서 특정 문자열을 포함하는 모든 줄을 제거하는 것은 간단하지만 매우 유용한 작업입니다. 이 작업을 수행하는 방법은 여러 가지가 있지만, 이 문서에서는 가장 쉽고 빠른 방법을 설명하겠습니다.

가장 먼저 해야 할 일은 텍스트 파일을 열어서 문자열이 포함된 줄을 모두 찾는 것입니다. 이를 위해 우리는 grep(검색) 명령어를 사용할 것입니다. 우리는 grep 명령어를 이용하여 텍스트 파일을 검색하고, 일치하는 문자열을 포함한 모든 줄을 표시할 것입니다.

grep 명령어는 표준 출력을 통해 일치하는 줄을 표시합니다. 이제 텍스트 파일에서 문자열이 포함된 모든 줄을 찾았으므로, 이를 제거해야 합니다. 이를 위해 우리는 sed(스트림 편집기) 명령어를 사용합니다.

sed 명령어는 스트림 편집기로써, 입력 텍스트를 처리하고 원하는 방식으로 수정합니다. 텍스트 파일에서 일치하는 문자열이 포함된 모든 줄을 제거하기 위해서는 다음과 같은 명령어를 사용할 수 있습니다.

$ sed '/WORD/d' file.txt

위의 명령어에서 WORD 부분은 찾고자 하는 문자열을 입력하면 됩니다. 이 작업을 수행하면, 파일에서 일치하는 문자열을 포함한 모든 줄이 삭제됩니다.

간단하게 grep과 sed 명령어를 이용하여 텍스트 파일에서 문자열이 포함된 모든 줄을 제거하는 방법을 설명하였습니다. 이 방법은 매우 유용하며, 수많은 파일을 처리해야 할 때 시간과 노력을 절약할 수 있습니다. 해당 방법을 시도해 보시기 바랍니다.

반응형
Comments