2013-04-22 64 views
1
255.255.0.0(queue=banglore)  
255.255.0.10(queue=hyderabad)  
255.255.1.2(cal = 10)  

我的腳本是通過使用AWK搜索的關鍵字,如果匹配挑字除了它

command | awk '{print $3}' | sed '1,9d' 

我的輸出幾乎是等作爲Linux終端如上所示..

和sed腳本我刪除了一些無用的問題。但是,現在我只需要帶大括號的隊列名稱(即只有文字banglore,hyderabad)。如何獲得一個(使用SED)提前 這IP地址將迅速改變.. 感謝..

+0

thnq -Steven一分錢編輯 – 2013-04-22 05:17:47

+0

您可以將awk和'sed'腳本合併到一個單一的awk腳本,平凡。然後添加一個'gsub'來替換之前和之後關閉的那個。 – tripleee 2013-04-22 05:31:49

+0

如果我使用** gsub **我需要給另一個字符串替換na ..但是,只是我想獲取隊列名稱。就是這樣 - @tripleee – 2013-04-22 05:47:53

回答

2
perl -lne 'if(/queue=/){m/\(queue=(.*?)\)/g;print $1}' your_file 

以下測試:

> cat temp 
255.255.0.0(queue=banglore)  
255.255.0.10(queue=hyderabad)  
255.255.1.2(cal = 10) 
> 
> 
> perl -lne 'if(/queue=/){m/\(queue=(.*?)\)/g;print $1}' temp 
banglore 
hyderabad 
> 
+1

哇..這是非常好的。但是,它也是打印cal值「10」。我只想要隊列名稱。它也是打印隊列名稱每次兩次..在此先感謝 – 2013-04-22 05:40:32

+1

已更新,以便它將只打印隊列值。 – Vijay 2013-04-22 05:52:42

+0

它的工作..謝謝sooooo多哥 – 2013-04-22 06:26:46

2

awk的版本:

awk -F '\\(|\\)|=' '{if($3 !~/(^)/)print $3}' temp 

臨時文件:

255.255.0.0(queue=banglore)  
255.255.0.10(queue=hyderabad)  
255.255.1.2(cal = 10) 

輸出:

banglore 
hyderabad 
+0

- 謝謝你的回答 – 2013-04-27 09:17:43

3

簡單grep解決方案:

$ grep -Po '(?<=queue=)[^)]*' file 
banglore 
hyderabad 
+0

thnq-sudo_O它是完美的 – 2013-04-27 09:17:06