sed는 txt 파일에서 패턴과 일치하지 않는 줄을 삭제합니다.

sed는 txt 파일에서 패턴과 일치하지 않는 줄을 삭제합니다.

저는 여러 다른 txt 파일을 나열하는 txt 파일을 작업 중입니다. 그 중 다수는 제가 실수로 복사했습니다.

저는 macOS를 사용하고 있으므로 중복 파일을 나열하는 줄은 모두 패턴으로 끝납니다 (NUMBER).txt. 이 패턴이 포함되지 않은 모든 행을 삭제하고 싶습니다.

정규식을 테스트하기 위해 이 명령을 생각해 냈지만 다음으로 끝나는 줄도 인쇄하기 때문에 작동하지 않습니다 (WORD).txt.

sed '/\(\d\)\.txt$|\(\d\d\)\.txt$|\(\d\d\d\)\.txt$/p' file.txt

뭔가 빠진 것이 있다는 건 알지만 무엇인지는 모르겠습니다... 도움을 주셔서 감사합니다!

답변1

이것은 작동합니다:

sed -E -n '/.*[0-9]+\.txt$/p' file.txt

당신이 보면정보 세트, 단락 2.1에서 구성을 사용하는 방법에 대한 몇 가지 예를 찾을 수 있습니다 sed -n '...p'.

위 명령은 표준 출력으로 인쇄됩니다. -i파일을 그 자리에서 수정하려면 이 옵션을 추가하세요 .

관련 정보