Как я вставляю строку в определенной строке в нескольких файлах на Unix?

4 ответа

sed -i -e '2iYour line here' /dir/*

Обратите внимание, что семантика sed -i зависит от типа Unix, поэтому проверьте свой man sed . Это написано для разновидности GNU.

13
ответ дан 8 December 2019 в 14:45
поделиться

это AWK , а не sed ,

for i in $(<list_of_files)
do
     awk '{if (FNR!=2) print $0; 
           else { print "new line"; print $0}}' $i > ${i}.tmp;
     mv ${i}.tmp $i;
done
1
ответ дан 8 December 2019 в 14:45
поделиться
perl -pi -we'print "extra line\n" if $. == 3; close ARGV if eof' files

закрытие (ARGV) необходимо для перезапуска счетчика линии $. в начале каждого файла; по умолчанию он считает строки в файлах.

2
ответ дан 8 December 2019 в 14:45
поделиться
ls | xargs --replace=foo perl -i -ne 'print; print "second line text\n" unless $x++;' foo
0
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: