如何将零的新列添加到文件?

问题描述

我有10000行的文件,例如

1.2341105289455E+03 1.1348135000000E+00

我想拥有

1.2341105289455E+03 0.0 1.1348135000000E+00 0.0

并在其中插入“ 0.0”列。

我试图将'space'替换为'0.0',但是我认为这不是最好的解决方案。我尝试使用awk,但只能在文件末尾添加“ 0.0”。

我敢肯定有更好的解决方案。你知道怎么做吗?啊?蟒蛇? emacs?

解决方法

使用此Perl单线版:

perl -lane 'print join "\t",$F[0],"0.0",$F[1],"0.0"; ' in_file > out_file

perl单行代码使用以下命令行标志:
-e:告诉Perl在代码中而不是在文件中查找代码。
-n:一次遍历输入一行,默认情况下将其分配给$_
-l:在直接执行代码之前,先剥离输入行分隔符(默认为* NIX上的"\n"),并在打印时附加它。
-a:将$_拆分为空白或@F选项中指定的正则表达式上的数组-F

另请参见:

perlrun: command line switches

,

awk

awk '{print $1,$2,"0.0"}' file

如果要就地修改文件,可以通过GNU awk添加-i inplace选项,或在现有命令中添加> tmp && mv tmp file来完成。但是请始终先运行而不更换它,以对其进行测试并确认输出。