我有一个文件,它具有成千上万个以<\ registername>开始并以<\ regend>结尾的功能。 Fie很少有具有特定模式的功能,而大多数功能内部都没有该模式。我只想要在其中包含特定模式的输出代码。 我有一个如下的输入程序:-
输出文件中不需要func3和func5代码。
<registername> func1<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func2<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func3<\registername>
<var>...
<no_pattern> are you good <pattern>
<\regend>
<registername> func4<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func5<\registername>
<var>...
<no_pattern> are you good <pattern>
<\regend>
<registername> func1<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func2<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func4<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
答案 0 :(得分:0)
这是您要做什么吗?
$ awk -v RS= -v ORS='\n\n' '/\n<pattern>/' file
<registername> func1<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func2<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func4<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
或:
$ awk -v RS= -v ORS='\n\n' '!/<no_pattern>/' file
<registername> func1<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func2<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
<registername> func4<\registername>
<var>...
<pattern> are you good <pattern>
<\regend>
如果您都不想要这些,请更新您的问题以阐明您的要求并提供更真实的示例输入/输出。