2013-07-03 303 views
2

如何使用grep命令過濾ip地址。使用grep命令匹配模式

3267 3  77.80.177.0/24  00:00:00:00:00:00 100011 0  0  0 0 y 
3289 1  177.77.1.0/24  00:00:00:00:00:00 100010 0  0  0 0 y 

欲僅過濾開始與上塔3 出現有列之間沒有均勻的間隔177中的條目。

對不起,我不喜歡使用grep。我試圖谷歌和一些例子,但沒有按照我打算做的方式工作。

感謝,

回答

2
grep " 177\." File 

那應該這樣做

+0

它在這種情況下工作,但沒有任何檢查'第三列'條件。 – fedorqui

+0

正確。但它可以工作和簡單 – Ayman

3

這可能與awk簡單:

$ awk '$3 ~ /^177/' file 
3289 1  177.77.1.0/24  00:00:00:00:00:00 100010 0  0  0 0 y 

'$3 ~ /^177/'意味着:如果第三個字段包含有177開頭的字符串,然後打印。

把它用做grep

$ grep -E "^\w+\s+\w+\s+177" file 
3289 1  177.77.1.0/24  00:00:00:00:00:00 100010 0  0  0 0 y 

-E "^\w+\s+\w+\s+177" file意思是:尋找與這個模式串:行,字,空格,字,空格開始,177

0

我寧願awk超過這個,但這裏都是解決方案:

隨着grep

grep -vE '\s*177\.([0-9]+\.){2}[0-9]\/[0-9]+\s*' inputFile 

隨着awk

awk '$3!~/^177/' inputFile 
0

根據您的樣本,這裏的另一個問題:

$ grep -o '[^.0-9]177.*/[0-9]{2}' 
中(注意前導空格)

結果:

177.77.1.0/24