Ich habe einen http-Link:
http://www.test.com/abc/def/efg/file.jar
und ich möchte den letzten Teil file.jar als Variable speichern, daher lautet die Ausgabezeichenfolge "file.jar".
Bedingung : Linkdose hat unterschiedliche Länge zB:
http://www.test.com/abc/def/file.jar.
Ich habe es so versucht:
awk -F'/' '{print $7}'
, aber das Problem ist die Länge der URL, also brauche ich einen Befehl, der für jede URL-Länge verwendet werden kann.
bash
shell-script
awk
cut
FunTomas
quelle
quelle
file=${myurl##*/}
dann eine gierige umgekehrte Zuordnung verwenden, um eine Sicherungskopie der zu erstellen?
(vergessen Sie nicht, diese zu maskieren!),echo ${file%%\?*}
basename
und auchdirname
für URLs gut geeignet:quelle
basename
unddirname
Split-Strings auf /, und das funktioniert auch mit URLs, zumindest solange sie keinen lokalen Teil haben (aber nicht mit URIs im Allgemeinen)./relative/URI/with/absolute/path/to/resource.txt
,relative/path/to/resource.txt
,../../../resource.txt
undresource.txt
en.wikipedia.org/wiki/.../relative/path
kann entweder ein Dateisystempfad oder ein relativer URI sein. Aber welche davon es ist, hängt vom Kontext ab. Wenn es als Dateisystempfad verwendet wird, ist es kein URI. Wenn es als URI verwendet wird, ist es kein Dateisystempfad. Zu sagen, dass es sich um eine URI handelt, nur weil sie der Syntax entspricht, ist, als würde man sagen, dass jedes der Wörter in diesem Kommentar auch eine URI ist.Mit
awk
können Sie$NF
, unabhängig von der Anzahl der Felder, das letzte Feld abrufen:Wenn Sie diese Zeichenfolge in einer Shell-Variablen speichern, können Sie Folgendes verwenden:
quelle
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,
Sie können dies zu einer einzigen
python3 -c
komprimieren, die in einem Shell-Skript verwendet wird:(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.)quelle
Eine Methode ist,
rev
die URL dann das Feld auszuschneiden und dannrev
erneut. z.B:Ausgabe:
Beispiel 2:
Ausgabe:
quelle