在一些文本中,我有一系列不同长度的数字(从1到6位数字).我想通过用零填充较短的数字来平衡所有这些数字的长度.
例如.以下4行 –
A1:11 A2:112 A3:223333 A4:1333 A5:19333 A6:4
应该是填充整数
A1:000011 A2:000112 A3:223333 A4:001333 A5:019333 A6:000004
我使用“sed”和以下combesome表达式:
sed -e 's/:\([0-9]\{1\}\)\>/:00000\1/' \ -e 's/:\([0-9]\{2\}\)\>/:0000\1/' \ -e 's/:\([0-9]\{3\}\)\>/:000\1/' \ -e 's/:\([0-9]\{4\}\)\>/:00\1/' \ -e 's/:\([0-9]\{5\}\)\>/:0\1/'
有可能这样做比这更好吗?
您可以用太多的零填充,然后只保留最后六位数:
原文链接:https://www.f2er.com/regex/357149.htmlsed -e 's/:/:00000/;s/:0*\([0-9]\{6,\}\)$/:\1/'
结果:
A1:000011 A2:000112 A3:223333 A4:001333 A5:019333 A6:000004
使用awk可能会更好:
awk -F: '{ printf("%s:%06s\n",$1,$2) }'