PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash-Parameter: Dateinamen herausziehen


mekakic
2009-10-13, 17:21:21
Wenn ich an ein Bash Script Parameter übergeben und sie mit $1, $2, .. ${n} auslese, sind das "in der Regel" Dateien bzw. Pfade. Bei den Windows Parametern erinnerte ich mich, dass es Schalter für diese Parameter gab um bestimmte Eigenschaften herauszuziehen.

Genauer. In $1 bekomme ich einen Pfad auf eine Datei übergeben. Jetzt wird ich gerne $1 so verwenden, daß er mir von diesem Pfad auf die Datei nur den Dateinamen gibt - bereinigt von dem ganzen Rest. Geht das bzw. wie macht man das in einer Bash?

fezie
2009-10-13, 17:41:17
Also übliche Praxis ist es sowas per sed zu erledigen:
datei = "$(echo $1 | sed -e 's,^.*/,,g')"
Statt $() geht auch ``, je nach Geschmack.

Gast
2009-10-13, 20:50:09
Einfacher:

$MYFILE=`basename "$1"`


Basename kann auch eine Dateiendung wegschneiden - Endung einfach als zusätzlichen Parameter angeben.
Pendant für den Pfad ohne Datei: dirname