新需求:要求循环提取linux日志文件两个指定字符串之间的字符串。
先后尝试了grep、sed等指令,均无果而终。
直到看到下图百度搜索结果,执行以下指令终获成功:awk 'BEGIN {key=1} />>> Script started./,/>>> Script Finished./ {print $0> "key" key ".txt"} />>> Script Finished./ {++key}' /root/Downloads/kpi.log,其中awk也是linux标准指令,key是循环次数,初始定义其值为1,>>> Script started.是指定的开始字符串,>>> Script started.是指定的结束字符串,/root/Downloads/kpi.log是日志文件。
执行成功后,在当前路径下自动循环提取以字符串“>>> Script started.”开始到以字符串”>>> Script Finished.“结束的字符串,并分别存储到以key为前缀的小文件中

本文介绍了一种使用awk命令在Linux环境下从日志文件中精确提取两个特定字符串间内容的方法,解决了传统grep和sed指令无法完成的任务,适用于需要循环提取多个相同模式日志片段的场景。
1444

被折叠的 条评论
为什么被折叠?



