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

标签 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>

最佳答案

这是你想要做的吗?

$ 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>

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

关于python - 如何打印包含某些特定模式的程序的完整功能摘录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55423544/

相关文章:

python - xpath 属性包含特殊字符

python - 在 OpenERP 7.0 的 ListView 中按选择排序

C++:跨平台且安全的 system(...) 替代方案是什么?

xml - 无法使用 wget 检索完整文件

linux - Grep 多个乱序的东西

python - 从 python 中的共享库返回的数组 - 这是内存泄漏吗?

python - 根据 2(或更多列值)查找下一个相关行

python - Nginx、Uwsgi、Django 问题

regex - 如何在 Linux 中使用特定值 grep JSON 记录

awk - 如何替换括号内的一个字符并保持其他所有字符不变