または、すべてを 1 つのプロセスに保持して、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 の変数は、$1、$9、$87 などのように、現在の行$i
の要素を参照します。i'th'
テストする iptables.log がないため、awk 構文が失敗しないことを確認する以外はテストできません。これが機能しない場合は、単純化されたデータのサンプル行を 2 ~ 4 行投稿してください。
IHTH