Hah, kami sama-sama menyadari hal itu. Senang bisa membantu.
derobert
10
Mengutip halaman manual:
${parameter##word}
Remove matching prefix pattern. The word is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
the beginning of the value of parameter, […]
/*tidak cocok dengan awal, karena URL Anda dimulai dengan htidak /.
Cara sepele untuk melakukan apa yang Anda cari (sesuai komentar Anda) adalah echo "$url" | rev | cut -d / -f 1 | rev. Tapi tentu saja, itu akan memberikan hasil yang menarik untuk URL yang diakhiri dengan garis miring.
Cara lain untuk melakukan apa yang Anda inginkan adalah menggunakan pola */.
Senang Anda memberi penjelasan tentang apa yang perlu dilakukan dan kutipan dari halaman manual adalah nilai tambah yang besar! Itu banyak membantu saya! Terima kasih lagi! :)
Fadi
5
basename(1) juga berfungsi dengan URL, sehingga Anda bisa melakukannya:
dirname $url
. Ataugrep -o 'http://[^/]*' <<<$url
.Jawaban:
Karena kata harus cocok dengan string yang harus dipangkas. Seharusnya terlihat seperti:
Terima kasih derobert, Anda mengarahkan saya ke arah yang benar.
sumber
Mengutip halaman manual:
/*
tidak cocok dengan awal, karena URL Anda dimulai denganh
tidak/
.Cara sepele untuk melakukan apa yang Anda cari (sesuai komentar Anda) adalah
echo "$url" | rev | cut -d / -f 1 | rev
. Tapi tentu saja, itu akan memberikan hasil yang menarik untuk URL yang diakhiri dengan garis miring.Cara lain untuk melakukan apa yang Anda inginkan adalah menggunakan pola
*/
.sumber
basename
(1) juga berfungsi dengan URL, sehingga Anda bisa melakukannya:sumber
Lihat juga: Bash Extended Globbing , meskipun dalam hal ini glob yang luas tidak penting.
Keluaran:
file.ext
sumber