Hah, nous le réalisons tous les deux en même temps. Heureux d'avoir pu aider.
derobert
10
Pour citer la page de manuel:
${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, […]
/*ne correspond pas au début, car votre URL commence par hnon /.
Une façon triviale de faire ce que vous cherchez (selon votre commentaire) est echo "$url" | rev | cut -d / -f 1 | rev. Mais bien sûr, cela donnera des résultats intéressants pour les URL se terminant par une barre oblique.
Une autre façon de faire ce que vous voulez peut être d'utiliser le modèle à la */place.
Heureux que vous ayez expliqué ce qui doit être fait et la citation de la page de manuel est un énorme avantage! Cela m'a beaucoup aidé! Merci encore! :)
Fadi
5
basename(1) fonctionne également avec les URL, vous pouvez donc simplement faire:
dirname $url
. Ougrep -o 'http://[^/]*' <<<$url
.Réponses:
Parce que le mot doit correspondre à la chaîne à couper. Cela devrait ressembler à:
Merci derobert, vous m'avez dirigé dans la bonne direction.
la source
Pour citer la page de manuel:
/*
ne correspond pas au début, car votre URL commence parh
non/
.Une façon triviale de faire ce que vous cherchez (selon votre commentaire) est
echo "$url" | rev | cut -d / -f 1 | rev
. Mais bien sûr, cela donnera des résultats intéressants pour les URL se terminant par une barre oblique.Une autre façon de faire ce que vous voulez peut être d'utiliser le modèle à la
*/
place.la source
basename
(1) fonctionne également avec les URL, vous pouvez donc simplement faire:la source
Voir aussi: Bash Extended Globbing , bien que dans ce cas le glob étendu ne soit pas essentiel.
Production:
file.ext
la source