Я хочу вставить новую строку после этой строки:
set_config_object("m_lin_1_pad_agent*","io_agent_config",m_lin_1_pad_agent_cfg,0);
Подскажите, пожалуйста, как мне этого добиться, используя sed [1188618. ] команда?
Комментарий Брайана З является хорошим предложением. Действительно, используя команду a
в sed
добавит строку после совпадения.
Однако, если вы непосредственно используете строку в своем вопросе в качестве совпадающей строки, вы найдете что ничего не случится. Проблема заключается в символе *
внутри вашей строки, который должен быть экранирован, поскольку sed
использует этот символ для соответствия регулярному выражению. В sed
вы можете экранировать персонажа, используя обратную косую черту ( \
) перед ним. Вы можете найти дополнительную информацию о символах, которые должны быть экранированы в этом вопросе U & L .
Итак, команду sed
необходимо выполнить, чтобы добавить строку newstring
в файле с именем file. txt
после сопоставления вашей строки (обратите внимание на экранированный *
):
sed -i -e '/set_config_object("m_lin_1_pad_agent\*","io_agent_config",m_lin_1_pad_agent_cfg,0);/ a newstring' file.txt
В приведенной выше команде -i
используется для изменения файла на месте. Если вы хотите предварительно просмотреть изменения и убедиться, что команда работает должным образом, выполните команду без флага -i
.