gpt4 book ai didi

bash - 使用 awk 命令进行递归搜索

转载 作者:行者123 更新时间:2023-12-02 17:34:59 24 4
gpt4 key购买 nike

我有 100 个日志文件,我希望 awk 在给定时间戳之间递归地搜索给定模式。日志文件看起来像这样

2010-03-24 07:00:01 ZZZZC941948879 RUFFLES 222.222.222.222 GET / - 80 - 220.181.7.113 HTTP/1.1       
2010-03-24 07:00:23 ZZZZC941948879 RUFFLES 222.222.222.222 GET

代码是

 awk -v "b=$date1" -v "e=$date2" '$1 >= b && $1 <= e' log.txt > output
grep -i "21things" output

我能够搜索模式,但只能搜索单个文件。是否可以使用 awk 命令进行递归搜索?

感谢您的帮助..!!

最佳答案

如果您的日志都在同一目录中,请使用 shell 通配符:

awk -v "b=$date1" -v "e=$date2" '$1 >= b && $1 <= e' *.log

注意 awk 可以做 grep 做的事,所以你不需要临时文件:

awk -v "b=$date1" -v "e=$date2" -v patt="21things" '
$1 >= b && $1 <= e && tolower($0) ~ patt
' *.log

如果您有 GNU awk,请使用 -v IGNORECASE=1 并删除 tolower 函数。

关于bash - 使用 awk 命令进行递归搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769973/

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