如何删除文件中不等于0的字符之前的所有空格?如何删除文件中的0?
例如
000545 - delete 000
0184 - delete 0
000000547 - delete 000000
005000 - delete 00
谢谢;)
如何删除文件中不等于0的字符之前的所有空格?如何删除文件中的0?
例如
000545 - delete 000
0184 - delete 0
000000547 - delete 000000
005000 - delete 00
谢谢;)
一个sed
方式:
$ echo '000545
> 0184
> 000000547
> 005000
> ' | sed 's/^0*//'
545
184
547
5000
一个问题可能是这会删除第一个数字,如果它恰好等于0 – Scrutinizer 2013-03-03 23:32:22
不知道这将是任何慢一些,但是去作为一个解决方案,反正:
awk '{printf "%d\n", $1}'
或明确:
awk '{print int($1)}'
这是另一种变体,有点更广义的和应该工作对于OP的情况也是如此。
这将删除所有前导零,但如果行包含要么只是一个0
或只是一组零的,将确保只有一个零被保留,而不是把它空白(其中其他答案一样)。如果这种行为不是有意的,而只是想将所有只包含零的行清空,请不要使用此解决方案。
sed 's#^0\+\([^0]\+.*$\|0$\)#\1#' file
示例文件:
000545
0184
000000547
005000
000a
00000
0
0045b
067800abc
输出:
545
184
547
5000
a
0
0
45b
67800abc
另一个AWK:
awk '{$1+=0}1' file
我最近偶然的Perl此神秘位:perl -pe 's/\G0//g'
一个问题可能是这会删除第一个数字,如果它恰好等于0 – Scrutinizer 2013-03-03 23:31:50