2014-12-02 70 views
-1

我試圖使用unix sed命令查找與特定正則表達式匹配的行號。我的文件的模式如下使用'sed'找到一行

Murali : 20 # 
Krishna: 21 $ 
Hari: 22 @ 
Murali : 23 # 

我需要只輸出數字像下面使用SED命令

20 
21 
22 
23 

你能幫幫我與SED正則表達式。

+3

爲什麼不使用cut? like'cut -d''-f2' – jmunsch 2014-12-02 03:51:52

回答

0

如何

$ cat input 
Murali : 20 # 
Krishna: 21 $ 
Hari: 22 @ 
Murali : 23 # 

$ sed -r 's/^[^0-9]+([0-9]+).*/\1/g' input 
20 
21 
22 
23 
  • [^0-9]+匹配以外的任何其他數字

  • ([0-9]+)匹配的數字,在組捕獲1

  • .*匹配其餘

0

您也可以參考awk版本

awk -F":" '{print $2--}' 

輸出:

20 
21 
22 
23 
+0

即使是一些較短的'awk -F:'{$ 0 = + $ 2} 1''或'awk -F:'{print + $ 2}'' – Jotne 2014-12-02 07:28:45

0

這裏是一個awk。這可能是簡單的比一個正則表達式sed解決明白,

awk '{print $(NF-1)}' file 
20 
21 
22 
23 

打印倒數第二場。