Odpowiedzi:
Możesz użyć rozszerzenia parametrów Basha :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Jeśli chcesz użyć innego procesu, z Awk:
echo "foo-bar-123" | awk -F- '{print $NF}'
Lub, jeśli wolisz Sed:
echo "foo-bar-123" | sed 's/.*-//'
Lżejszy proces zewnętrzny, jak sugeruje Glenn Jackman, to cut
:
cut -d- -f3 <<< "$string"
cut
; w rzeczy samej, ale tylko wtedy, gdy znany jest numer ostatniego pola (ponieważ pytanie jest nieco dwuznaczne: czy istnieje prosta linia poleceń do wyodrębnienia ostatniej części ...? )
rev <<< "$string" | cut -d- -f1 | rev
, ale odwracamy się od prostoty rozszerzenia param.
cut
:cut -d- -f3 <<< "$string"