2012-03-27 5 views
2

Bash Scripting auf OSX Snow Leopard, ich möchte eine Reihe von Datei-Suffixe entfernen und mein googlefu versagt mich.bash; Entfernen von einer Reihe von Suffixen

file="filename_1" 
file1=${file%_1} 
echo $file1 
filename 

Da jedoch alle Varianten eine Musterliste in das Abstreifen der Einführung haben mich im Stich gelassen, zum Beispiel:

shopt -s extglob 
file1=${file/@(%_1|%_end)/} 
echo $file1 
filename_1 

Ich habe versucht, die Musterliste in einer Variablen setzen, mit Klammern oder keine, Anführungszeichen oder keine. Ich komme zum Schluss, dass Substitutionen und Trimmen von nachlaufenden Strings keine Musterlisten nehmen - oder dass mir etwas ziemlich Offensichtliches fehlt. Danke für Vorschläge zu eleganten Lösungen oder was ich an Musterlisten vermisse.

Antwort

0

Wenn es akzeptabel ist, zwei Befehle zu verwenden, können Sie mit sed etwas tun:

echo $YOURVARIABLE | sed 's/\(_1\|_WHAT\|_EVER\|_EXTENSION\)$//'