Hallo Leute, ich bräuchte mal eure Hilfe. Ich würde gerne einen Dateinamen erkennen, in verschiedene Teile aufteilen und diese in Variablen speichern. Bsp.: 1_2_3.txt Nun möchte ich, dass 1 als $a, 2 als $b, 3 als $c und txt als $type gespeichert wird. Bisher habe ich das in einer Batch mit folgendem Command gemacht... FOR /F "usebackq tokens=1,2 delims=_" %%a IN (`dir /B`) DO set temp=%%a FOR /F "usebackq tokens=1,2,3 delims=_" %%a IN (`dir /B`) DO set datum=%%b FOR /F "usebackq tokens=1,2,3,4 delims=_." %%a IN (`dir /B`) DO set zeit=%%c FOR /F "usebackq tokens=1,2,3,4 delims=_. " %%a IN (`dir /B`) DO set del=%%d ...und möchte das ganze nun unter Linux machen und da dort ja keine Batches funktionieren, muss ich das irgendwie in ein shell script schreiben, oder habt ihr noch ne andere Idee? Im vorraus schon mal Vielen Dank für eure Hilfe... Antwort entweder hier oder an: ersch.fabian@web.de mfg Fabi
Vieleicht so ?? : echo 1_2_3 | awk -F'_' '{print $2}' Ausgabe: 2 Wenn das ganze in eine ENV_Variable soll dann so VAR=`echo 1_2_3 | awk -F'_' '{print $2}'` echo $VAR Ausgabe: 2
Achso wenn der Dateiname eine Extension wie z.B. ".txt" hinter einem Punkt hat könntest du diesen noch rausschneiden. So z.B. : echo 1_2_3.txt | sed 's/\..*//' | awk -F'_' '{print $2} Willst Du das für ein ganzes Verzeichniss ausgeben lassen so kannst Du es in eine einfach for schleife packen for i in `ls` do VAR=`echo 1_2_3.txt | sed 's/\..*//' | awk -F'_' '{print $2} ` echo $VAR done Es gibt aber unter Linux bestimmt noch 1000 andere Wege das zu machen :)
Sorry Tippfehler for i in `ls` do VAR=`echo 1_2_3.txt | sed 's/\..*//' | awk -F'_' '{print $2}'` echo $VAR done
Argllll jetzt aber :)) for i in `ls` do VAR=`echo $i | sed 's/\..*//' | awk -F'_' '{print $2}'` echo $VAR done Shit Cut&Paste !!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.