0

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

例子

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

谢谢你 ;)

4

6 回答 6

3

一种sed方式:

$ echo '000545
> 0184
> 000000547
> 005000
> ' | sed 's/^0*//'
545
184
547
5000
于 2013-03-03T21:35:33.660 回答
1

您可以使用sed

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

这将删除行首的所有0字符。

于 2013-03-03T21:35:54.507 回答
1

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

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

或明确:

awk '{print int($1)}'
于 2013-03-03T21:54:02.990 回答
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
于 2013-03-03T21:54:28.343 回答
1

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

于 2013-03-04T01:52:08.350 回答
0

另一个awk:

awk '{$1+=0}1' file
于 2013-03-03T23:43:14.380 回答