gpt4 book ai didi

linux - 查找与模式匹配的最后一行

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:47 25 4
gpt4 key购买 nike

我正在运行多个数据收集器脚本,从社交平台提取数据。每个人都将进度记录在自己的日志文件中。我必须使用 ps 命令手动监视它们。

我想在 bash 中制作一个脚本,该脚本在执行时会告诉我收集器是否正在运行或停止。根据我的计划,它将进入日志文件,跳到末尾,然后向上搜索日志中的关键字,例如:1. 如果收集器正在运行,日志文件显示处理线;2. 如果收集器停止,日志文件显示异常

它将向上搜索文件以获取上述任意 2 种情况的最新出现情况。我希望它在找到其中之一时停止搜索日志文件。然后我会回显状态。

目前,我可以跳到末尾,然后向上搜索,但我不知道如果它首先找到包含搜索模式的任何一行,如何使搜索停止。?而if else又会据此如何实现呢?

我的代码是

cat **LogFile** | grep -E 'Processing line|Exception' | tail -1

最佳答案

# using tac
tac /etc/passwd | awk '/Processing Line/{print "Processing Line found...\n" $0;exit}
/Exception/{print "Exception found...\n" $0;exit}'

# Using awk
awk '{line[NR]=$0} # Store all lines into an array, use NR (line number) as element
END{for(i=NR;i>0;i--) # loop through array in reverse
{if(line[i] ~ /Processing Line/) # Exit on match
{print "Processing Line found...\n" line[i];exit}
else if(line[i] ~ /Exception/)
{print "Exception found...\n" line[i];exit}
}
}' /etc/passwd

关于linux - 查找与模式匹配的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641142/

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