我有2段(例如)
<name>abcd</name><value>efgh</value>
<name>hijk</name><value>lmno</value>
<name>kjhg</name><value>abcd</value>
<name>jjjj</name><value>llll</value>
我想搜索段落中是否存在a
(第一次出现)并打印整个段落。
我的输出应如下:
<name>abcd</name><value>efgh</value>
答案 0 :(得分:0)
您可以通过取消设置记录分隔符RS
在#34;段模式&#34;中使用awk:
awk -v RS= '/a/ { print; exit }' file
当段落与正则表达式/a/
匹配时,awk会打印并退出。
答案 1 :(得分:0)
使用grep:
grep "<name>.*a.*</name>" file
这将输出文件中的所有行,其中名称标记中有“a”。点(。) - 表示任何字符。正则表达式后跟星号(*)匹配零个或多个正则表达式。如果有任何选择,则使用一行中的第一个匹配字符串。