String zerlegen

22/08/2010 - 11:40 von G | Report spam
Hallo,

ich suche eine Lösung für die Bash (evtl. mit sed oder so), die aus einem
Dateinamen folgender Art:
"audio.eng.Name der Spur.default.ac3"
die Strings
"audio" "eng" "Name der Spur" "default" "ac3"
macht. Das muss doch eigentlich ein simpler Einzeiler sein, oder?

Für den theoretischen Fall, dass in "Name der Spur" ein Punkt auftaucht -
wie kann ich mich denn davor am besten schützen?

Grüße!
 

Lesen sie die antworten

#1 Helmut
22/08/2010 - 12:03 | Warnen spam
Hallo, Günther,

Du meintest am 22.08.10:

ich suche eine Lösung für die Bash (evtl. mit sed oder so), die aus
einem Dateinamen folgender Art:
"audio.eng.Name der Spur.default.ac3"
die Strings
"audio" "eng" "Name der Spur" "default" "ac3"
macht. Das muss doch eigentlich ein simpler Einzeiler sein, oder?



Der Einzeiler lautet

zerlege $Dateiname
oder
zerlege "audio.eng.Name der Spur.default.ac3"

und "zerlege" beruht auf dem Skript

#! /bin/bash
test "$1" || exit
test "$2" && exit
while IFS=. read eins zwei drei vier fuenf sechs sieben Rest
do
echo erster ist $eins
echo sexter ist "$sechs"
done << EOF
$1
EOF
#

Für den theoretischen Fall, dass in "Name der Spur" ein Punkt
auftaucht - wie kann ich mich denn davor am besten schützen?



Siehe oben - das wàre der primitive Weg. Etwas eleganter wàre, "$#"
auszuwerten.

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Ähnliche fragen