如何打印包含某些特定模式的程序的完整功能摘录

时间:2019-03-29 18:26:57

标签: python linux grep

我有一个文件,它具有成千上万个以<\ 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>

1 个答案:

答案 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>

如果您都不想要这些,请更新您的问题以阐明您的要求并提供更真实的示例输入/输出。