使用' sed'找到一个数字

时间:2014-12-02 03:48:31

标签: regex shell sed

我正在尝试使用unix sed命令查找与特定正则表达式匹配的行号。我的文件格式在

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

我需要使用SED命令

仅输出如下的数字
20
21
22
23

您能否帮助我使用SED的正则表达式。

3 个答案:

答案 0 :(得分: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组中捕获的数字

  • .*与其他

  • 相匹配

答案 1 :(得分:0)

您还可以参考awk版本

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

输出

20
21
22
23

答案 2 :(得分:0)

这是awk。理解它可能比正则表达式sed解决方案更简单,

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

打印倒数第二个字段。