nur das Wort nach dem letzten Schrägstrich

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Generic1
Beiträge: 78
Registriert: 15.11.2012 13:41:28

nur das Wort nach dem letzten Schrägstrich

Beitrag von Generic1 » 04.03.2013 14:24:27

Hallo,

ich hätte noch eine Frage zu den Regex und zwar hab ich so einen String:

Code: Alles auswählen

VAR=http://das/ist/meine/url/die/beliebig/lang/ist/DiesenStringWillIch.deb
wie bekomm ich da nur DiesenStringWillIch.deb heraus, Schrägstiche können beliebig viele sein.
Ich habs mit

Code: Alles auswählen

echo ${VAR%/*} 
versucht, das macht aber genau das gegenteil und schneidet mir den letzten Teil, den ich eigentlich bauche, ab.
Hat jemand eine Idee wie ich das am besten machen kann?

Vielen Dank!!
lg
Generic1

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: nur das Wort nach dem letzten Schrägstrich

Beitrag von r900 » 04.03.2013 14:43:11

Generic1 hat geschrieben: Ich habs mit

Code: Alles auswählen

echo ${VAR%/*} 
versucht, das macht aber genau das gegenteil und schneidet mir den letzten Teil, den ich eigentlich bauche, ab.
Das macht genau das Gegenteil, weil der Operator "%" vom Ende des strings ersetzt. Du brauchst "#". Oder genauer gesagt "##", damit nicht nur bis zum ersten sondern bis zum letzten Schrägstrich ersetzt wird. Also so sollte es funktionieren:

Code: Alles auswählen

echo ${VAR##*/} 

Generic1
Beiträge: 78
Registriert: 15.11.2012 13:41:28

Re: nur das Wort nach dem letzten Schrägstrich

Beitrag von Generic1 » 04.03.2013 18:16:26

Besten Dank r900!!!!
lg

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: nur das Wort nach dem letzten Schrägstrich

Beitrag von Cae » 04.03.2013 20:47:38

Das Programm basename tut genau das: Letzten Slash suchen und alles danach drucken.

Code: Alles auswählen

$ basename /foo/bar
bar
Ein Shell-Builtin bzw. die Shell-internen Stringoperationen dueften aber schneller sein (kein fork()-Overhead etc.).

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten