2014-01-10 60 views
-1

我有一個路徑列表,但我只關心某些路徑。例如。以文件結尾的特定路徑的Grep/SED/AWK

/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

如何從只有/nwsys/release/conf/anyfile.anyextension

grep "/nwsys/release/conf/"

+0

到目前爲止,你從誰的人都互相不同的解釋您的問題/要求3個不同的答案。發佈一些具體的樣本輸入和期望的輸出,以澄清你真正想要的東西。 –

回答

1

像這回?

awk -F/ '{print $1,$2,$3,$4,$NF}' OFS=/ file 
/nwsys/release/conf/xprofd.cfg4 
/nwsys/release/conf/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

將路徑更改爲所有文件的三個級別。


或者是這個你正在尋找:

awk -F/ 'NF<6' file 
/nwsys/release/conf/amcxml4.conf 

具有與3個級別路徑打印線。

+0

完美! awk -F /'NF <6'非常棒。謝謝你Jotne !! – TheHad

+1

Ahem - 你說你想匹配'/ nwsys/release/conf/anyfile.anyextension'。對'NF <6'的測試不檢查文件名是否包含'。'後跟擴展名,也不排除'/ bin/ls'。 –

+1

完全同意@EdMorton'NF <6'與'anyfile.anyextension'要求有什麼關係? – anubhava

2

你可以使用egrep的:

egrep '/nwsys/release/conf/.*\.' file 
/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

其中:

cat file 
/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 
/nwsys/release/conf/anything 
+1

@TheHad - 你在看什麼? anubhava的腳本將不會產生與您的示例輸入中的其他答案相同的輸出 - 無論哪個答案是正確的,他們都不能**全部**「工作」! –

2
$ egrep '^/nwsys/release/conf/[^/]+\.[^/]+$' file 
/nwsys/release/conf/amcxml4.conf 
+0

謝謝埃德。也適用於! – TheHad

+1

@TheHad - 真的想想你在這裏做什麼。我的腳本與Jotne腳本所做的完全不同,它會根據輸入文件的內容產生截然不同的輸出。僅僅因爲2個腳本爲3行樣本輸入產生相同的輸出並不意味着它們在一般情況下都實際做到了你想要的。 –

相關問題