我试图使用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