Câu trả lời:
Bạn có thể sử dụng mở rộng tham số của Bash :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Nếu bạn muốn sử dụng quy trình khác, với Awk:
echo "foo-bar-123" | awk -F- '{print $NF}'
Hoặc, nếu bạn thích Sed:
echo "foo-bar-123" | sed 's/.*-//'
Một quy trình bên ngoài nhẹ hơn, như Glenn Jackman gợi ý là cut
:
cut -d- -f3 <<< "$string"
cut
; thực sự nhưng chỉ khi số trường cuối cùng được biết (vì câu hỏi hơi mơ hồ: Có một dòng lệnh đơn giản để trích xuất phần cuối ...? )
rev <<< "$string" | cut -d- -f1 | rev
, nhưng sau đó chúng ta đang tránh xa sự đơn giản của param.Exansion.
cut
:cut -d- -f3 <<< "$string"