我正在寻找一种方法来使用以下代码作为基础
function get {
awk '/^\[ '"$1"' \]/{p=1;next} /^$/{p=0} p' "${MY_FILE_PATH}"
}
提取myfile
的完整部分:
[ SECTION_1 ]
info 1
info 2
info 3
[ SECTION_2 ]
info 4
info 5
info 6
以它所拥有的条目为条件。
例如,当我要求info 2
时,它应该打印完整的SECTION_1
。
我想过使用额外的标志,但是我没有得到预期的结果。
是否有任何解决方案可以从上面的函数get
派生以实现此行为?
感谢tipps和提示:)
答案 0 :(得分:2)
你可以使用RS=
:
awk -v s="SECTION_1" -v RS= '$0 ~ "\\[ " s " \\]"' file
[ SECTION_1 ]
info 1
info 2
info 3
或使用info 2
作为搜索字符串:
awk -v s="info 2" -v RS= '$0 ~ s' file
[ SECTION_1 ]
info 1
info 2
info 3