或者您可以将其全部保存在一个进程中,并使用 awk 的等效sub()
功能,即
awk '{sub(/DST=/,"",$10); print $10}' iptables.log |sort -u
更新:
不管它是在 10 号还是 11 号空间,有没有只在 DST= 上键入?
awk '$10~/^DST=/{sub(/DST=/,"",$10); print $10};$11~/^DST=/{sub(/DST=/,"",$11); print $11}' iptables.log | sort -u
或者
awk '{for (i=9;i<13;i++) {
if ($i ~ /^DST=/) { sub(/DST=/, "", $i); print $i}
}
}' iptables.log | sort -u
请注意,在这里,您可以更改要检查和打印的字段范围,例如,我正在测试字段 9-12。awk 中的变量 like$i
引用i'th'
当前行中的元素,如 $1、$9、$87 等。
由于我没有要测试的 iptables.log,因此我无法对其进行测试,除非确认 awk 语法没有失败。如果这不起作用,请发布 2-4 行简化数据示例。
IHTH