我需要针对该主题的解决方案进行增强:How do I get multi-line string between two braces containing a specific search string?
如果搜索字符串在方括号内,则解决方案有效:
awk -v RS='[^\n]*{|}' 'RT ~ /{/{p=RT} /test/{print p $0 RT}' file
其中:
/test/
-在括号内查找测试
我正在尝试更改或操作'RT ~ /{/{p=RT} /test/{print p $0 RT}'
部分,但无济于事
来自包含文件的文件:
blabla
program1 {
blabla
}
blabla
program2 {
blabla
blablaeventblabla
}
我不想搜索括号内的值,而是想通过搜索“ program2”来检查或返回整个块。这样awk将返回
program2 {
blabla
blablaeventblabla
}