如何使用sed/awk/perl从数字中删除前导零和尾随零?

Tot*_*Tot 3 bash perl awk sed

我有这样的文件:

pup@pup:~/perl_test$ cat numbers 
1234567891
2133123131
4324234243
4356257472
3465645768000
3424242423
3543676586
3564578765
6585645646000
0001212122
1212121122
0003232322
Run Code Online (Sandbox Code Playgroud)

在上面的文件中我想删除前导零和尾随零,所以输出将是这样的

pup@pup:~/perl_test$ cat numbers 
1234567891
2133123131
4324234243
4356257472
3465645768
3424242423
3543676586
3564578765
6585645646
1212122
1212121122
3232322
Run Code Online (Sandbox Code Playgroud)

怎么做到这一点?我试图sed删除那些零.很容易删除尾随零而不是前导零.

帮我.

ram*_*610 6

试试这个Perl:

while (<>) {     
  $_ =~ s/(^0+|0+$)//g;

  print $_;
 }
}
Run Code Online (Sandbox Code Playgroud)


Сух*_*й27 6

perl -pe 's/^0+ | 0+$//xg' numbers
Run Code Online (Sandbox Code Playgroud)


fed*_*qui 5

sed 在行首寻找全零 + 在最后寻找全零:

$ sed -e 's/^[0]*//' -e 's/[0]*$//g' numbers
1234567891
2133123131
4324234243
4356257472
3465645768
3424242423
3543676586
3564578765
6585645646
1212122
1212121122
3232322
Run Code Online (Sandbox Code Playgroud)