新需求:要求循环提取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为前缀的小文件中