在我的输出文件中,对应于两个浮点数的两列连接在一起,形成一列。这里举了一个例子,有没有办法把这两列分开呢?
在这里,应该是5列,用空格隔开,但是缺少3和4列之间的空格。对于某些UNIX命令,如cut、awk、sed甚至正则表达式,是否有必要纠正这个错误?
3.77388 0.608871 -8216.342.42161 1.88655
4.39243 0.625 -8238.241.49211 0.889258
4.38903 0.608871 -7871.71.52994 0.883976
4.286 0.653226 -8287.322.3195 2.13736
4.29313 0.629032 -7954.651.59168 1.02046
更正后的版本应如下所示:
3.77388 0.608871 -8216.34 2.42161 1.88655
4.39243 0.625 -8238.24 1.49211 0.889258
4.38903 0.608871 -7871.7 1.52994 0.883976
4.286 0.653226 -8287.32 2.3195 2.13736
4.29313 0.629032 -7954.65 1.59168 1.02046
更多信息:第4列总是小于10,所以它在小数点左边只有一位。
我试过用awk:
tail -n 5 output.dat | awk '{print $3}'
-8216.342.42161
-8238.241.49211
-7871.71.52994
-8287.322.3195
-7954.651.59168
有没有办法把这一栏分成两栏?
最佳答案
一种解决方案:
sed 's/\(\.[0-9]*\)\([0-9]\.\)/\1 \2/'