如何在文件中每行的开头添加一个字符串

时间:2012-03-06 17:14:02

标签: file unix

我想在文件的每一行的开头添加一个特定的字符串。所以,如果我在someFile.txt中有以下两行,并想用管道添加日期字符串03/06/2012 -

Hello|there|john
Hello|there|joel

我会 -

03/06/2012|Hello|there|john
03/06/2012|Hello|there|joel

如何实现?

注意我文件中有130万行。

3 个答案:

答案 0 :(得分:30)

$ awk '{print "03/06/2012|" $0;}' input.txt > output.txt

对于一些平均2010年硬件上具有130万行的文件,大约需要0.8秒。

答案 1 :(得分:3)

sed -i 's/^/03\/06\/2012|/' input.txt

答案 2 :(得分:1)

Perl解决方案:

perl -ne 'print "03/06/2012|$_"' input.txt > output.txt

为了好玩,我在/ tmp:

中对10次运行进行了基准测试
             Rate        awk perl_5.6.1        sed  perl_5.22  perl_5.20
awk        2.08/s         --       -10%       -10%       -26%       -32%
perl_5.6.1 2.32/s        11%         --        -0%       -17%       -24%
sed        2.33/s        12%         0%         --       -17%       -24%
perl_5.20  3.06/s        47%        32%        31%         9%         --

使用此处创建的1.3M行输入文件进行测试:
perl -le 'while (1){exit if ++$n > 1300000; print $n}' > input.txt