我有一个文件:
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
我想删除所有零:
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
1 2 5 6 8
我试过tr -d [:0:]
。不幸的是,它不应该以这种方式工作。
我相信sed
perl 可以完成这项工作,但我不知道具体是如何完成的。
我在谷歌上搜索,如果你相信我,结果是混合且相关的,但我无法在第一页找到正确的结果。
答案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
为了删除文件中的所有零,要使用的命令是替代的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
正则表达式中是词尾
希望它能够启动!