bash: read line separieren

R

r00ki3

Jungspund
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
 
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
 
Jetzt hab ichs auch kapiert ^^
Natürlich geht das :D
 
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:

Code:
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.
 

Ähnliche Themen

Variableninhalt wird nicht gespeichert

MySQL-Abfrage an Variable übergeben

Wenn die nächste Zeile eine leere Zeile ist hör auf

bash: read -a fehler

Bash - Problem mit verschachtelten Schleifen

Zurück
Oben