Die meisten der veröffentlichten Antworten sind in URLs, die Abfragezeichenfolgen oder -ziele enthalten, wie z. B. die folgenden, nicht zuverlässig:
https://example.com/this/is/a/path?query#target
In Python ist die URL-Analyse in der Standardbibliothek enthalten. es ist einfacher, es machen zu lassen. Z.B,
from urllib import parse
import sys
path = parse.urlparse(sys.stdin.read().strip()).path
print("/" if not path or path == "/" else path.rsplit("/", 1)[-1])
Sie können dies zu einer einzigen python3 -c
komprimieren, die in einem Shell-Skript verwendet wird:
echo 'https://example.com/this/is/a/path/componets?query#target' \
| python3 -c 'from urllib import parse; import sys; path = parse.urlparse(sys.stdin.read().strip()).path; print("/" if not path or path == "/" else path.rsplit("/", 1)[-1])'
(Sie können das Skript auch zur besseren Lesbarkeit '
ausgeblendet lassen. Dadurch können Sie Zeilenumbrüche einfügen.)
Natürlich ist Ihr Shell-Skript jetzt von Python abhängig.
(Ich bin mir ein wenig unsicher, ob dies versucht, Fälle zu behandeln, in denen die Pfadkomponente der URL der Root ist. /
) Passen Sie an, und testen Sie, ob dies für Sie von Bedeutung ist.)