Apakah ada baris perintah sederhana untuk mengekstraksi bagian terakhir dari string yang dipisahkan oleh tanda hubung? Misalnya, saya ingin mengekstrak 123
dari foo-bar-123
.
10
Anda dapat menggunakan ekspansi parameter Bash :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
Jika Anda ingin menggunakan proses lain, dengan Awk:
echo "foo-bar-123" | awk -F- '{print $NF}'
Atau, jika Anda lebih suka Sed:
echo "foo-bar-123" | sed 's/.*-//'
Proses eksternal yang lebih ringan, seperti yang disarankan Glenn Jackman adalah cut
:
cut -d- -f3 <<< "$string"
cut
:cut -d- -f3 <<< "$string"
cut
; memang tetapi hanya jika jumlah bidang terakhir diketahui (karena pertanyaannya agak ambigu: Apakah ada baris perintah sederhana untuk mengekstrak bagian terakhir ...? )rev <<< "$string" | cut -d- -f1 | rev
, tetapi kemudian kita membelok dari kesederhanaan param.pembangunan.sumber
sumber