在包含字符串的行之前追加
Append before line contains a string
我想使用 sed 在部分匹配字符串的所有实例之前附加一个字符串。
换句话说类似
LINE ONE OF FILE
LINE TWO OF FILE
我想在包含 LINE 的每一行之前附加 NEWLINE
所以它看起来像这样
NEWLINE
LINE ONE OF FILE
NEWLINE
LINE TWO OF FILE
我有:
sed 's/.*$string1.*/$string2\n&/' $file_name
我想在 $file_name
中包含 $string1
的每一行上方放置 $string2
$ string1=LINE
$ string2=NEWLINE
$ sed "s/.*$string1/$string2\n&/" file
NEWLINE
LINE ONE OF FILE
NEWLINE
LINE TWO OF FILE
您必须仔细检查 string1
和 string2
以确保它们不会无意中包含任何未转义的 sed-active 字符。
处理中/
如果字符串中包含/
,我们需要改变替换命令的形式。例如:
$ string1=LINE
$ string2=NEW/LINE
$ sed "s|.*$string1|$string2\n&|" file
NEW/LINE
LINE ONE OF FILE
NEW/LINE
LINE TWO OF FILE
sed 的命令多于 s///
sed '/LINE/ i NEWLINE'
对于与 LINE 匹配的任何行,i
ncert 新文本。
我想使用 sed 在部分匹配字符串的所有实例之前附加一个字符串。
换句话说类似
LINE ONE OF FILE
LINE TWO OF FILE
我想在包含 LINE 的每一行之前附加 NEWLINE
所以它看起来像这样
NEWLINE
LINE ONE OF FILE
NEWLINE
LINE TWO OF FILE
我有:
sed 's/.*$string1.*/$string2\n&/' $file_name
我想在 $file_name
$string1
的每一行上方放置 $string2
$ string1=LINE
$ string2=NEWLINE
$ sed "s/.*$string1/$string2\n&/" file
NEWLINE
LINE ONE OF FILE
NEWLINE
LINE TWO OF FILE
您必须仔细检查 string1
和 string2
以确保它们不会无意中包含任何未转义的 sed-active 字符。
处理中/
如果字符串中包含/
,我们需要改变替换命令的形式。例如:
$ string1=LINE
$ string2=NEW/LINE
$ sed "s|.*$string1|$string2\n&|" file
NEW/LINE
LINE ONE OF FILE
NEW/LINE
LINE TWO OF FILE
sed 的命令多于 s///
sed '/LINE/ i NEWLINE'
对于与 LINE 匹配的任何行,i
ncert 新文本。