Bash - 使用sed

时间:2017-10-19 12:55:17

标签: bash sed numbers add zero

我尝试过不同的方法。我需要改变这个:

  

5 dias,3 meses,4 anos

     

67 decimales

     

naranjas 45,limones 56

     

66 + 44 = 100。

     

7777a 7b 88c 777d

进入这个:

  

0005 dias,0003 meses,0004 anos

     <00> 0067 decimales

     

naranjas 0045,limones 0056

     

0066 + 0044 = 0100。

     

7777a 0007b 0088c 0777d

但是我无法使用到目前为止的代码在最后一行添加零,这是以下内容:

sed -e 's/\b[0-9]\{3\}\b/0&/g; s/\b[0-9]\{2\}\b/00&/g; s/\b[0-9]\b/000&/g' numbers.txt >output.txt

我错过了什么?

1 个答案:

答案 0 :(得分:1)

你可以使用perl

perl -pe 's/\d+/sprintf "%04d",$&/ge' test

或者如果你真的想使用sed

sed -r ':1;s/([^0-9]|^)([0-9]{1,3})([^0-9]|$)/\10\2\3/;t1' file