我有一个像这样的文件:
abc 123456 566671 487823 244211 911234 778234 671123 455321
fgd 1567988 2556118 4798739 1803812 9208018 4712324 2134981 1027431
etc..
我想在每个数字的右边添加一个小数点后3位数字。因此,如果我有123456,我应该得到123.456,如果我有1234567,我应该得到1234.567。
首先,我在每个6位数字的末尾添加零(我的文件具有至少6位数字的数字),并执行以下sed
命令:
sed 's/.\{8\}/& /g' | sed 's/ \./ /g'
我的期望:
abc 123.456 566.671 487.823 244.211 911.234 778.234 671.123 455.321
fgd 1567.988 2556.118 4798.739 1803.812 9208.018 4712.324 2134.981 1027.431
我的实际情况:
abc 1234.560 5666.710 4878.230 2442.110 9112.340 7782.340 6711.230 4553.210
fgd 1567.988 2556.118 4798.739 1803.812 9208.018 4712.324 2134.981 1027.431
答案 0 :(得分:0)
我的选择是在Vim中打开文件并对此进行搜索和替换:
:%s/\([0-9]\{3}\)\( \|$\)/.\1\2/gc
或通过sed
方式执行:
$ sed 's/\([0-9]\{3\}\)\( \|$\)/.\1\2/g' input.txt