让我们有像..
这样的文件Mango
Apple
Orange
Lenovo
Cherry
Stack
Stack
现在我想在包含 apple 和 stack 的行之间搜索 cherry ,并在 cherry <上方插入一个新行< / em>
输出应该看起来像
Mango
Apple
Orange
Lenovo
**NEWLINE**
Cherry
Stack
Stack
答案 0 :(得分:1)
使用sed
sed '/Apple/,/Stack/{s/Cherry/**Newline**\n&/}' file
/Apple/,/Stack/
搜索Apple
和Stack
s/Cherry/**Newline**\n&/
替换命令s
答案 1 :(得分:0)
这可能适合你(GNU sed):
sed '/apple/I,/stack/I!b;/cherry/Ii\\' file
答案 2 :(得分:0)
使用awk
awk '/Apple/,/Stack/ {if ($0~/Cherry/) $0="**NEWLINE**"RS$0}8'
Mango
Apple
Orange
Lenovo
**NEWLINE**
Cherry
Stack
Stack
此搜索从Apple
到Stack
,如果找到Cherry
行,则在上方插入新行。