![sed는 txt 파일에서 패턴과 일치하지 않는 줄을 삭제합니다.](https://linux55.com/image/176407/sed%EB%8A%94%20txt%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%8C%A8%ED%84%B4%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%A4%84%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
저는 여러 다른 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
파일을 그 자리에서 수정하려면 이 옵션을 추가하세요 .