如何在文件中删除0?

时间:2013-03-03 21:32:49

标签: bash

如何删除文件中不等于0的字符前的所有空格?

例如

000545 - delete 000
0184 - delete 0
000000547 - delete 000000
005000  - delete 00

谢谢;)

6 个答案:

答案 0 :(得分:3)

sed方式:

$ echo '000545
> 0184
> 000000547
> 005000
> ' | sed 's/^0*//'
545
184
547
5000

答案 1 :(得分:1)

您可以使用sed

sed -e 's/^00*//' file.txt

删除该行开头的所有0个字符。

答案 2 :(得分:1)

不确定它是否会变慢,但无论如何都要作为解决方案:

awk '{printf "%d\n", $1}'

或明确地:

awk '{print int($1)}'

答案 3 :(得分: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

答案 4 :(得分:1)

我最近偶然发现了这个神秘的Perl:perl -pe 's/\G0//g'

答案 5 :(得分:0)

另一个awk:

awk '{$1+=0}1' file