我試圖使用unix sed命令查找與特定正則表達式匹配的行號。我的文件的模式如下使用'sed'找到一行
Murali : 20 #
Krishna: 21 $
Hari: 22 @
Murali : 23 #
我需要只輸出數字像下面使用SED
命令
20
21
22
23
你能幫幫我與SED
正則表達式。
我試圖使用unix sed命令查找與特定正則表達式匹配的行號。我的文件的模式如下使用'sed'找到一行
Murali : 20 #
Krishna: 21 $
Hari: 22 @
Murali : 23 #
我需要只輸出數字像下面使用SED
命令
20
21
22
23
你能幫幫我與SED
正則表達式。
如何
$ 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
.*
匹配其餘
您也可以參考awk
版本
awk -F":" '{print $2--}'
輸出:
20
21
22
23
即使是一些較短的'awk -F:'{$ 0 = + $ 2} 1''或'awk -F:'{print + $ 2}'' – Jotne 2014-12-02 07:28:45
這裏是一個awk
。這可能是簡單的比一個正則表達式sed
解決明白,
awk '{print $(NF-1)}' file
20
21
22
23
打印倒數第二場。
爲什麼不使用cut? like'cut -d''-f2' – jmunsch 2014-12-02 03:51:52