![파일에서 특정 번호를 삭제하는 방법은 무엇입니까?](https://linux55.com/image/84342/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
파일이 있습니다:
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
모든 0을 제거하고 싶습니다.
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
나는 노력했다 tr -d [:0:]
. 불행하게도 이런 식으로 작동해서는 안 됩니다.
나는 Perl이 그 일을 할 수 있다고 믿지만 sed
, 정확히 어떻게 하는지는 모릅니다.
Google에서 검색했는데 제 말을 믿으신다면 결과가 혼합되어 있고 관련성이 있었지만 첫 페이지에서 올바른 결과를 찾을 수 없었습니다.
답변1
[8]root@lab711:> cat file
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
1 2 5 6 8 0 0 0 0
[8]root@lab711:> sed 's/0//g' file
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
답변2
답변3
파일에서 0을 모두 제거하기 위해 사용하는 명령은 대체 sed 's/0//g' filename
의미 입니다 s
. /0
파일의 모든 0을 나타냅니다 . 아무것도 대체하지 //
않습니다. g
세계를 대표하다
답변4
노력하다
perl -pe 's/\s+0\b//g' <filename>
-p
파일 라인을 반복하고 인쇄합니다.$_
-e
구현하다/g
전역(발생하는 모든 것)- 정규식은
s/\s+0\b//
최소한 하나의 공백, 문자0
, 단어의 끝 순서를 제거합니다.
또는 파일의 위치를 바꾸려면
sed -ibbak -e 's/\s\+0\b//g' <filename>
-i
제자리에-b.bak
백업 만들기(확장자는.bac
)- 여기서 정규식
+
문자는 이스케이프되어야 합니다. \s
정규식에 공백이 있습니다\b
정규식에서 접미사라는 단어는 다음과 같습니다.
출시되길 바랍니다!