从第一列中删除所有前导零,如果找到所有零,则保留1个零

时间:2019-01-25 12:41:50

标签: unix scripting sh

我想从第一列中删除前导零,并且如果在第一列中找到所有零,则应保留1个零。

00123|a 
00154|b 
00000|c

输出

123|a 
154|b 
0|c

3 个答案:

答案 0 :(得分:1)

使用awk:

$ awk '
BEGIN { FS=OFS="|" }  # set field separators
{ $1+=0 }             # add a zero to remove leading zeros
1' file               # output

输出:

123|a 
154|b 
0|c

这是一个适用于整数的数字:

$ awk '
BEGIN{ FS=OFS="|" }
{ $1=sprintf("%.0f",$1) }  # %.0f will round off decimals
1' file

输出:

123|a 
154|b 
0|c
4295229012|0

答案 1 :(得分:1)

如果要使用sed:

sed 's/^0*//;s/^|/0|/' infile

答案 2 :(得分:0)

尝试

string="0000123456000" 
echo $((10#$string))