我想在此行后插入一个新行:
set_config_object("m_lin_1_pad_agent*","io_agent_config",m_lin_1_pad_agent_cfg,0);
您能指导我如何使用该sed
命令实现这一点吗?
答案1
Brian Z 的评论是个好建议。事实上,使用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
。