Как извлечь последнюю часть строки в bash?
У меня есть переменная:
A="Some variable has value abc.123"
Мне нужно извлечь это значение i.e abc.123
. Возможно ли это в bash?
Ответы
Ответ 1
Откуда вы знаете, где начинается значение? Если это всегда 5-й и 6-й слова, вы можете использовать, например:
B=$(echo $A | cut -d ' ' -f 5-)
Это использует команду cut
, чтобы отрезать часть строки, используя простое пространство в качестве разделителя слов.
Ответ 2
Самый простой -
echo $A | awk '{print $NF}'
Ответ 3
Да; это:
A="Some variable has value abc.123"
echo "${A##* }"
напечатает это:
abc.123
(Обозначение ${parameter##word}
объяснено в & sect; 3.5.3 "Расширение параметров оболочки" справочного руководства Bash.)
Ответ 4
Некоторые примеры с использованием расширения параметров
A="Some variable has value abc.123"
echo "${A##* }"
abc.123
Самое длинное совпадение на "" пространстве
echo "${A% *}"
Some variable has value
Самое длинное совпадение. точка
echo "${A%.*}"
Some variable has value abc
Кратчайшее совпадение на "" пространстве
echo "${A%% *}"
some
Подробнее Shell-Parameter-Expansion