我有一些日志正在尝试过滤。日志末尾包含一个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