Я хочу получить два последних числа (одно целое, одно с плавающей запятой; за ним следует необязательный пробел) и распечатать только их.
Пример:
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'
Как я могу распечатать только ту часть строки, которая соответствует регулярному выражению в группе?
-r
или --regexp-extended, иначе я получалinvalid reference \1 on
ошибку s 'command's RHS'.