我有这个文件:
sometext1{
string1
}
sometext2{
string2
string3
}
sometext3{
string4
string5
string6
}
Run Code Online (Sandbox Code Playgroud)
我想在此文件中搜索特定字符串并打印此字符串之前到开头的{所有内容以及此字符串之后到结尾的所有内容}。我试图用 sed 来实现这一点,但如果我尝试打印范围内的所有内容,/{/,/string2/例如 sed 打印:
sometext1{
string1
}
sometext2{
string2
sometext3{
string4
string5
string6
}
Run Code Online (Sandbox Code Playgroud)
如果我搜索字符串“string2”,我需要输出为:
sometext2{
string2
string3
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
我正在尝试在casestartStr和endStrcase之间获取所有内容bbb。我明白,我怎么能得到之间的所有事件startStr和endStr使用sed。我不明白我如何将它限制在bbb发生的一个实例上。
样本输入:
fff
startStr
aaa
bbb
ccc
endStr
xxx
yyy
startStr
ddd
endStr
ddd
bbb
Run Code Online (Sandbox Code Playgroud)
所需输出:
startStr
aaa
bbb
ccc
endStr
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
$ sed -n -e '/startStr/,/endStr/ p' sample.txt
startStr
aaa
bbb
ccc
endStr
startStr
ddd
endStr
Run Code Online (Sandbox Code Playgroud)