如何使用bash脚本提取连续模式

我尝试了 awk、grep 和 sed 根据下面的输出解析连续模式,但结果为空。只有其中一种模式有效。

awk '/^[0-9]/ && /OAA-/' file.txt grep -E '^[0-9].*ORA-' file.txt

下面的输入

    2021-04-27T05:30:13.292507-04:00
    OCC(3):
    OCC(3):DB initialized.
    OAA-06512: at "PATCH", line 001
    2021-05-27T05:30:13.292507-04:00
    OAA-06513: at "PATCH", line 002
    OAA-06514: at "PATCH", line 003
    2021-06-27T05:30:13.292507-04:00
    This is the empty string.

预期输出

2021-04-27T05:30:13.292507-04:00
OAA-06512: at "PATCH", line 001

2021-05-27T05:30:13.292507-04:00
OAA-06513: at "PATCH", line 002
OAA-06514: at "PATCH", line 003

可以提供语法来解析像 Date 这样的连续模式,后跟 OAA 注释,按照预期的输出。

回答

使用您发布的示例,您无需 grep 即可执行任何操作:

$ awk -v RS= -F'n' '{print $1 ORS $NF}' file
2021-04-27T05:30:13.292507-04:00
OAA-06512: at "PATCH", line 001
2021-05-27T05:30:13.292507-04:00
OAA-06513: at "PATCH", line 002

如果这不是您所需要的全部,那么编辑您的问题以提供更好的示例,包括不起作用的情况。


以上是如何使用bash脚本提取连续模式的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>