如何对日志中包含特定值及以上值的行进行错误处理?

  • 本文关键字:处理 错误 日志 包含特 awk
  • 更新时间 :
  • 英文 :


我有一些日志正在尝试过滤。日志末尾包含一个IP和UID。我只想复制具有特定 UID 值的行以及高于该值的任何内容。

日志:

1.2.4.5 1000
5.4.3.2 2000
7.4.2.1 1000
1.3.5.2 5000

例如,我只想复制包含 2000 以上值的任何行,并将其移动到单独的文件中。我尝试了许多笨拙的命令,但我发现没有运气。

awk -F: '{if ($3 > 2000) { print $1 ":" $3 } }' log.txt > newlog.txt

这有效并添加您想要的冒号分隔符:

awk '$2>2000' < log.txt | awk '{print $1 ":" $2}' > newlog.txt

新日志.txt输出

1.3.5.2:5000

作为过滤器,您所需要的只是测试。测试的真假将导致通过打印在 true 上进行过滤。

例:

$ echo "1.2.4.5 1000
5.4.3.2 2000
7.4.2.1 1000
1.3.5.2 5000" | awk '$2>2000'
1.3.5.2 5000

最新更新