Supportnet Computer
Planet of Tech

Supportnet / Forum / Linux

Frage zur Shell Programmierung





Frage

hallo zusammen, ich mache gerade meine ersten schritte mit der shell programmierung, und habe gleich ein problem, bei dem ich nicht weiter weis. ich habe eine .csv datei, die mehrere zeilen beinhaltet, nun möchte ich die dritte stelle der zeilen auslesen und diesen wert (eine zahl 0-9) an eine variable übergeben, damit ich mit diesem wert/variable dann weiter arbeiten kann. geht das und wenn ja wie? für eure hilfe bedanke ich schon jetzt und bin gespannt auf die lösung mfg sönke

Antwort 1 von draack

Hi,

Zerlegen kannst du mit:

cut -f 3 -d, datei.csv

oder
awk -F, ´{ print $3 }´ datei.csv


Das Komma solltest du natürlich durch das richtige Trennzeichen ersetzen.

Tschö,
Volker

Antwort 2 von meckerbüttel

Frage zur Shell Programmierung

ja ok, das klappt schon mal, aber wie stelle ich es jetzt an, dass der entsprechende wert an die variable übergeben wird?
habe es mit eine anschliessenden umleitung der ausgabe probiert, aber das klappt anscheinend nur wenn ich das direkt in eine andere datei schreibe.

awk -F, ´{ print $3 }´ test.csv > sls
echo $sls

leider wird hier $sls nicht ausgegeben, bzw. es wird eine leere zeile am bildschirm angezeigt, von daher gehe ich mal aus, das sls nicht gefüllt wird.

Antwort 3 von draack

Hi,

du übersiehst, dass du mehrere Werte zurückerhälst - du mußt mit einer "for"-Schleife arbeiten:

for i in `awk -F, ´{ print $3 }´ test.csv`
do
	echo "Wert der dritten Spalte ist: " ${i}
done


(die ` sind "backticks" - keine Hochkommas)

Tschö,
Volker

Antwort 4 von meckerbüttel

super, das funktioniert, damit komme ich ein großes stück weiter.

vielen dank für die schnelle hilfe

mfg
sönke