Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: read line separieren
Hallo ihr lieben,
ich habe noch eine Frage....in einem Skript befindet sich
while read line;
[do stuff line$]
die ausgelesene Datei hat genau EINEN Eintrag pro Zeile.
Kann ich hinter dem erwähnten EIntrag einen weiteren Eintrag
mit einem Delimiter setzen, um eine neue Variable für eine weitere Funktion
erzeugen und nutzen zu können ? Wie spreche ich diese dann an ?
Oder gibt es ein praktischeres Verfahren ? Wichtig ist die zeilenweise
zuordnung.
Daniel
Schlaubi_fi.de
30.06.2005, 14:17
Kapier ich nicht, was du meinst...und line$ - wie soll das funktionieren? Du meinst doch sicher $line oder etwa nicht? Es wäre super, könntest du uns ein Beispiel der Eingabe-Datei und dem von dir gewünschten Output geben.
Jeps, einfach `read eintrag1 eintrag2` -> z.B. `read vorname nachname`.
Das ist ja ausgezeichnet.....!!!!!
Vielen Dank.....
Daniel
Schlaubi_fi.de
30.06.2005, 16:19
Jetzt hab ichs auch kapiert ^^
Natürlich geht das :D
neutrino1
30.06.2005, 18:27
Hi!
Seit meinem letzten script verwende ich auch in solchen Konstruktionen arrays, welche einige Vorteile haben.
Ich geh mal davon aus, daß die Einträge durch Leerzeichen getrennt sind, dann kann man folgendes machen:
cat testfile|while read;do
ARRAY_NAME=($REPLY)
echo ${#ARRAY_NAME } # Anzahl der Elemente
echo ${ARRAY_NAME } # Ausgabe aller Elemente (also der Zeile)
echo ${ARRAY_NAME[4]} # 5. Element (weil index bei 0 beginnt)
echo ${#ARRAY_NAME[4]} # Zahl der Zeichen vom 5. Element
done
Ich hoffe, der Code is richtig so, da ich eigentlich die ksh verwende - wie auch immer, ich glaub die kleine Auflistung oben zeigt, was für Vorteile die Verwendung von arrays haben kann.
Ciao
Jeah, Arrays sind cool. Wenn Du nicht Leerzeichen als Trenner hast, kannst du auch die Variable IFS (Internal Field Seperator) setzen & exportieren um diesen Default zu ändern.
Sprich
export IFS=":"
wuerde den Doppelpunkt als Feld-Seperatoren nehmen. Die Variable solltest du bei Gelegenheit mit "unset" wieder leeren damit Du später keine Probs kriegst mit anderen Tools.
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.