Как добавить строку в начале каждой строки в файле - PullRequest
20 голосов
/ 06 марта 2012

Я хочу добавить определенную строку в начале каждой строки в файле.Так что, если у меня есть две строки ниже в someFile.txt и я хочу добавить строку даты 03/06/2012 с pipe-

Hello|there|john
Hello|there|joel

, я бы получил-

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

Как этого добиться?

Примечание. В моем файле 1,3 миллиона строк.

Ответы [ 3 ]

30 голосов
/ 06 марта 2012
$ awk '{print "03/06/2012|" $0;}' input.txt > output.txt

Требуется около 0,8 секунды для файла с 1,3 М строк на некотором среднем оборудовании 2010 года.

3 голосов
/ 10 февраля 2014
sed -i 's/^/03\/06\/2012|/' input.txt
1 голос
/ 02 октября 2015

Perl-решение:

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

Ради интереса я протестировал 10 прогонов в / tmp:

             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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...