Hah, nós dois percebemos isso ao mesmo tempo. Feliz por ajudar.
11263 derobert
10
Para citar a página de 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, […]
/*não corresponde ao início, porque seu URL começa com hnão /.
Uma maneira trivial de fazer o que você está procurando (de acordo com o seu comentário) é echo "$url" | rev | cut -d / -f 1 | rev. Mas é claro, isso dará resultados interessantes para URLs que terminam em uma barra.
Outra maneira de fazer o que você quer pode ser usar o padrão */.
Que bom que você deu uma explicação do que precisa ser feito e a citação da página de manual é uma enorme vantagem! Isso me ajudou muito! Obrigado novamente! :)
Fadi
5
basename(1) também funciona com URLs, então você pode simplesmente fazer:
dirname $url
. Orgrep -o 'http://[^/]*' <<<$url
.Respostas:
Porque a palavra precisa corresponder à string a ser aparada. Deve parecer com:
Graças derobert, você me guiou na direção certa.
fonte
Para citar a página de manual:
/*
não corresponde ao início, porque seu URL começa comh
não/
.Uma maneira trivial de fazer o que você está procurando (de acordo com o seu comentário) é
echo "$url" | rev | cut -d / -f 1 | rev
. Mas é claro, isso dará resultados interessantes para URLs que terminam em uma barra.Outra maneira de fazer o que você quer pode ser usar o padrão
*/
.fonte
basename
(1) também funciona com URLs, então você pode simplesmente fazer:fonte
Veja também: Bash Extended Globbing , embora neste caso o globo estendido não seja essencial.
Resultado:
file.ext
fonte