gpt4 book ai didi

regex - 从文本文件中获取范围模式中的特定行

转载 作者:行者123 更新时间:2023-12-02 02:00:44 25 4
gpt4 key购买 nike

我现在正在尝试不同的场景,其中 1 个是获取以下 2 个字符串之间的文本。


代码:

Type of msg:          -in_full [+]
>date
>alr text
>ID_on_exit
AWXX-Ready to commit (96) msg type: (10)
**
Type of msg: -in_full [+]
>date
>alr text
>ID_on_exit
AWXX-Ready to commit (98) msg type: (10)
**
Type of msg: -in_full [+]
>date
>alr text
>ID_on_exit
AWXX-Ready to commit (96) msg type: (10)

我需要获取所有具有相同起始行和结束行的事件。从 Type of msg ....... 开始,到最后一行结束。

最后一个字符串必须在行首,第一个字符串也是如此。我是这么说的,因为有时 AWXX 代码会出现在另一行的中间,我对此不感兴趣。

我试过类似的东西,但我对 awk 不是很在行

代码:

perl -lne '{if(/"Type of msg:          -in_full \[+\]"/){$#A=-1;$f=1;} if(/^AWXX-Ready to commit (98) msg type: (10)/ && ($f)){print join("\n",@A,$_);next}($f)?push(@A,$_):next;}' test6

我也尝试过使用 sed,但我的文件很大,而且我认为存在某种限制,因为它不适用于那些文件,但适用于小文件。

例如,我们使用 SED 处理的文件大小是否有任何限制?现在我正在使用 sed,它只适用于小文件,但不适用于我的 100MB 日志。

我也在使用以下内容:

awk '/^Type of msg:          -in_full \[+\]/{s=x}{s=s$0"\n"}/^AWXX-Ready to commit \(98\)/{print s}' test6

出于某种原因,它显示了所有文件,而不是我要查找的文件。帮助!!

最佳答案

GNU 代码 :

sed -n '/^Type of msg:\s\+-in_full.\[+\]/,/^AWXX-Ready to commit (96) msg type:/p' file

GNU 代码 :

awk '/^Type of msg:[[:space:]]+-in_full.\[\+\]/,/^AWXX-Ready to commit \(96\) msg type:/' file

关于regex - 从文本文件中获取范围模式中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com