我现在正在尝试不同的场景,其中一个是获取以下 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)
我需要让所有出现的事件都具有相同的起始行和结束行。以 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
出于某种原因,它显示了所有文件,而不是我要查找的文件。帮助!!