相关疑难解决方法(0)

搜索字符串并打印范围内前后的所有内容

我有这个文件:

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)

谢谢。

sed text-processing

10
推荐指数
2
解决办法
1971
查看次数

根据开始和结束模式之间的模式获取开始模式和结束模式之间的文本

我正在尝试在casestartStrendStrcase之间获取所有内容bbb。我明白,我怎么能得到之间的所有事件startStrendStr使用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)

sed text-processing

3
推荐指数
1
解决办法
5888
查看次数

标签 统计

sed ×2

text-processing ×2