【发布时间】:2013-07-04 21:36:07
【问题描述】:
我想获取最后两个数字(一个整数,一个浮点数;后跟可选的空格)并只打印它们。
例子:
foo bar <foo> bla 1 2 3.4
应该打印:
2 3.4
到目前为止,我有以下内容:
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/replacement/p'
会给我
foo bar <foo> bla 1 replacement
但是,如果我尝试将其替换为第 1 组,则会打印整行。
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/\1/p'
如何仅打印与组中正则表达式匹配的行部分?
【问题讨论】:
-
这个问题要求的不仅仅是打印。具有适当权限的人应修改此问题。
-
为了避免误报 (int + ...) 和 (int + int) 使用:
sed -nr 's/.*([0-9]+[\ \t][0-9]+.[0-9]+[\ \t]*$)/\1/p'