有人可以帮我在文件中的字符串中添加零吗?
例如:我有test.dat,它包含如下:
1 FirstName LastName A +2015042113:00:00000285000FSCRD INV 0 2 FirstName LastName B +2015042220:00:00000331000SSESA INV 0
我想通过在字符串的中间插入三(3)个零来创建一个shell脚本来编辑fie中的一个字符串。
所以预期的输出将是:我粗加了三个零,如下所示。
01 FirstName LastName A +2015042113:00:00 000 000285000FSCRD INV 0
02 FirstName LastName B +2015042220:00:PM 000 000331000SSESA INV 0
答案 0 :(得分:1)
您可以将sed
与regex
:
sed 's/\(:..:..\)/\1000/' test.dat
它查找模式:..:..
(点是任何字符,因此它查找" 冒号,任何字符,任何char ,冒号,任何char ,任何char ")并向其添加3个零
答案 1 :(得分:0)
你可以使用;
awk -F : '{print $1":"$2":"substr($3,1,2)"000"substr($3,3)}' test.dat
或
sed -r -e 's/^.*:../&000/' test.dat
答案 2 :(得分:0)
sed "s/\(+[0-9]\{10\}:[0-9]\{2\}:[A-Z0-9]\{2\}\)\([A-Z0-9]\{16\}\)/\1000\2/"
此sed
命令匹配整个第五个字段,然后插入三个零。这将更加健壮(与较短的regex
相比),以防止替换线的其他部分。
如果存在第五个字段的规范,则可以使regex
更强。