Как извлечь последнюю часть строки в 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
Ответ 1 Откуда вы знаете, где начинается значение? Если это всегда 5-й и 6-й слова, вы можете использовать, например: B=$(echo $A | cut -d ' ' -f 5-) Это использует команду cut, чтобы отрезать часть строки, используя простое пространство в качестве разделителя слов.
Ответ 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