2

Файл имеет содержание:

[Greet]

Hello
Hi
Hola

Я хочу добавить строку с именем Hey чтобы ее позиция была после Hello:

[Greet]

Hello
Hey
Hi
Hola

Есть ли способ сделать вышеупомянутое, используя echo или другие родные инструменты linux из командной строки?

2 ответа2

3

Используйте sed .

Поскольку команда sed для вставки или добавления строк требует разрыва строки, проще всего поместить команду sed в файл и указать sed выполнить этот файл.

Пример: чтобы вставить Hey после (каждого) Hello , создайте следующий файл:

/Hello/a\
Hey

Затем вызовите sed:

sed -f appendheyafterhello.sed < sourcefile > resultfile

Здесь приведены другие команды sed том числе способ вставки строки перед шаблоном или с определенным номером строки.

0

Вот некоторые решения Perl:

perl -p -i -e 'print "Hey\n" if /Hi/'  filename

или же

perl -p -i -e 'print "Hey\n" if $. == 4'  filename

или же

perl -n -i -e 'print; print "Hey\n" if /Hello/' filename

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .