Получить конкретный номер в строке

У меня есть этот файл

123 My name is Lorry I'm 29 years old 10000 45 148 Name - Dan 20000 18 895 My name is John Lazaro I like tennis 30000 63 

И я хочу напечатать только последние числа в строке

 45 18 63 

Можно ли это сделать?

UPDATE: теперь я хочу распечатать

 10000 20000 30000 

  • Добавить bash в базовое ядро ​​Linux?
  • wc -l файл переменной
  • Терминалы GUI (?) Сброс $ SHELL
  • Практическое использование опции `set -k` в bash
  • Добавить результат подсчета слов в конец файла
  • Как эхо выражение с одинарными и двойными кавычками?
  • Linux Shell Script - отправить команду через TCP в Sharp Aquos
  • Учитывая команду * nix, как мне найти, где находится исполняемый файл?
  • 3 Solutions collect form web for “Получить конкретный номер в строке”

    Вы можете попробовать использовать awk для печати последней поданной:

     awk '{ print $NF }' file 

    и для поля печати рядом с последним:

     awk '{ print $(NF - 1) }' file 

    В вашем случае последнее слово (разделенное пробелом) оказывается числом. Если это всегда так, ваша проблема может быть уменьшена до печати последнего слова, например:

     awk 'NF {print $NF}' 

    или

     sed 's/.* //' 

    Для последнего:

     awk 'NF >= 2 {print $(NF-1)}' 

    Если вы хотите напечатать последнее слово iif, это положительное десятичное целое число, то это станет следующим:

     awk '$NF ~ /^[0-9]+$/ {print $NF}' 

    (замените $NF на $(NF-1) за последний раз).

    Если вы хотите напечатать самую правую последовательность десятичных цифр в каждой строке, тогда:

     sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\).*/\1/p' 

    Для последнего:

     sed -n 's/^/./;s/.*[^0-9]\([0-9]\{1,\}\)[^0-9].*[0-9].*/\1/p' 

    Если кому-то нужен мой обновленный вывод, просто введите это

     awk '{print $(NF-1)}' file.txt 
    Linux и Unix - лучшая ОС в мире.