后,我有以下内容X线插入线:sed的 - 之后的比赛
void function_1()
{
//something (taking only 1 line)
}
->INSERT LINE HERE<-
//more code
使用SED,我想在INSERT LINE HERE标签插入线。 最简单的方法应该是:
- 查找文本 “function_1”
- 跳过3线
- 插入新行
但没有已知的SED选项做的工作。
sed '/function_1/,3a new_text
插入 'function_1'
sed '/function_1/,+3a new_text
插入NEW_TEXT之后的每个接下来的3行的,下面的 'function_1'
sed '/function_1/N;N;N; a new_text
插入NEW_TEXT在多个位置,而不是相关的后右NEW_TEXT到图案
谢谢。
或者:'sed'/ function_1 /!{p; d;}; n; n; n;一个新文本'它更加迂回,但在sed代码中没有换行符(因为'a'命令是最后)。 – Wintermute
我想这种方法不适用于所有版本的sed,因为POSIX指定你应该使用'a \'后跟一个换行符来追加文本。 –