簡體   English   中英

AWK超過幾欄

[英]AWK over few columns

我有這樣的文件:

52.17.30.11 10.1.1.2 76 ACCEPT
54.19.18.100 10.25.13.18 1140 ACCEPT
10.25.13.136 10.24.13.166 275074 ACCEPT
54.72.7.17 10.24.13.166 152 ACCEPT

我想對前兩個IP進行AWK,以識別它們是Internet,internal1還是其余的。 在這種情況下,我想得到以下結果:

Internet 10.1.1.2 76 ACCEPT
Internet internal1 1140 ACCEPT
internal1 10.24.13.166 275074 ACCEPT
Internet 10.24.13.166 152 ACCEPT

因此,如果這是10.25 ,則這是internal1。 否則,如果是10. ,則為“其余”,如果這是其他內容,則為Internet

在第一個IP上這樣做沒有問題:

cat x | awk -F. '{if($1 == 10 && $2 == 25) { print "internal1 " } else if($1 == 10) { print $0 } else {print "Internet "}

但是,結果將是:

Internet
Internet
internal1
Internet

所以缺少的是1)每行的其余部分和2)第二IP的檢查

有任何想法嗎?

嘗試這個:

awk '{for (i=1;i<=2;i++) { 
    if ($i ~ /^10\.25\./) $i="internal1"; 
    else if ($i !~ /^10\./) $i="Internal"} }1' x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM