2013-11-04 256 views
1

我有一個名爲test文件字符串搜索

# cat test 
192.168.171.3 840 KB /var/opt 
192.168.171.3 83 MB /var 
192.168.171.3  2 KB /var/tmp 
192.168.171.3 1179 KB /var/opt 
192.168.171.3 65 MB /opt/var/dump 
192.168.171.3 15 MB /opt/varble 
192.168.171.3  3 MB /var 

我想搜索的條目只有/ var和如的/ opt/VAR或/ var它沒有任何其他變化/ TMP。我嘗試了grep'^/var $'test或awk,但它不起作用。

# grep '^/var$' test 
# 
# awk '/^\/var$/' test 
# 

請幫忙!

++很抱歉的痛苦...已經得到它排序,但感謝你的答案++

+0

grep'/ var $'test? – Nishant

回答

2

此grep命令應該工作:

grep " /var$" file 

192.168.171.3 83 MB /var 
192.168.171.3  3 MB /var 

用awk:

awk '$4=="/var"' file 
192.168.171.3 83 MB /var 
192.168.171.3  3 MB /var 
+0

你的第一個正則表達式只適用於空格作爲列分隔符,它失敗並帶有製表符。當有'/ random/with space/var'這樣的路徑時,它也會失敗。是的,不太可能,但仍然。 – user2719058

+0

@ user2719058:這個grep可以用於tab/space:**'grep「[[:space:]]/var $」file' ** – anubhava

1

您還可以使用以下方式:

grep -w ^/var file 

-w標誌將匹配形成整個單詞的字符串,而^會強制它匹配一行的開頭。