Відповіді:
Ви можете використовувати розширення параметра Bash :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Якщо ви хочете скористатися іншим процесом, за допомогою Awk:
echo "foo-bar-123" | awk -F- '{print $NF}'
Або, якщо ви віддаєте перевагу Sed:
echo "foo-bar-123" | sed 's/.*-//'
Більш легкий зовнішній процес, так як передбачає Гленн Джекман є cut
:
cut -d- -f3 <<< "$string"
cut
; насправді, але лише якщо число останнього поля відомо (оскільки питання дещо неоднозначне: чи є простий командний рядок для вилучення останньої частини ...? )
rev <<< "$string" | cut -d- -f1 | rev
, але тоді ми відхиляємось від простоти param.expansion.
cut
cut -d- -f3 <<< "$string"