URL: https://www.overclockers.at/coding-stuff/shell_script_teil_von_zeile_wegschneiden_183500/page_1 - zur Vollversion wechseln!
Ich spiele mich schon den halben Abend herum, ich habe folgenden String in der Variablen $rardl
/this/is/a/dir/and/this/a.rar
ich möchte auf das ergebnis kommen:
/this/is/a/dir/and/this
ich dachte zuerst an cut, aber wie rückwärts anwenden? (mit / als delimiter und dann die ersten 6 felder nehmen und ausgeben geht nicht, weil die pfade später immer anders sein werden)
fix ist nur, dass immer alles nach dem letzten / weg muss.
tr geht auch nicht, weil auch der dateiname + endung sich ändern werden.
mit sed ginge es vermutlich, aber ich blick da noch nicht so durch.
bitte um hilfe
ich habe jetzt, bei einem eigentlich nicht ganz ernst gemeinten versuch, die lösung gefunden, falls es wen interessiert:
kurz gesagt, den ganzen string umdrehen, bis zum ersten delimiter (/) cutten (komplementär davon nehmen) wieder mit rev umdrehenCode:rardlrev=$(echo $rardl | rev) rardlrevcut=$(echo $rardlrev | cut -f1 -d"/" --complement) rardldir=$(echo $rardlrevcut | rev)
Ein wenig eleganter wirds, wenn du alles in eine Zeile schreibst...
muh = $(echo $bla | rev | cut ... | rev)
Generisch:
bash:Code:dirname "/this/is/a/dir/and/this/a.rar"
Code:myvar="/this/is/a/dir/and/this/a.rar"; echo "${myvar%/*}"
@that
danke, hab ich eh jetzt so verwirklicht, war noch vom herumtesten in x variablen zerlegt.
@colossus
nette sache!
kannst du mir einen hint geben wie man das nennt, bzw wo kann ich nachlesen weshalb das mit dem %/* funktioniert, wieso man da { und nicht ( braucht, kurz, was ist die syntax?
sieht nämlich sehr interessant aus.
sorry bin neu auf dem gebiet und versuche mich gerade an 1001 unnötigen shell einzeilern um mir kleine aufgaben zu erleichtern
Bisschen was wird hier behandelt:
http://johannes.truschnigg.info/tut/bash-tut.sxhtml
(shameless plug )
Ansonsten: `man bash`, Kapitel "Parameter Expansion"
Vielen Dank!
"Parameter Expansion" war das Schlagwort das ich gesucht habe
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025