spalte zu zeile mit schleife

L

L0rd

Mitglied
Hallo,

ich habe eine datei1 dass so aussieht:

Code:
wert1
wert2
wert3
wert4
wert5
wert6
wert7
wert8
wert9
wert10
---

ich würde es gern in eine Zeile schreiben, d.h. jede Zeile aus datei1 wird hintereinander ausgegeben werden und z.B. mit ; abgetrennt:

Code:
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....(newline anschließend)

alles was in datei1 steht sollte in einer Zeile ausgegeben werden anschließend newline(hänge immer wieder weiter an später)
Code:
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....

ich weiß es gibt Lösungen mit awk und tr usw. mir würde es lieber mit einer schleife gefallen, da es übersichtlicher ist und ich auch noch am Anfang jeder Zeile noch date +%s einfügen das ganze sollte dann ungefähr so aussehen:
Code:
1303072873;wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....
1303072873;wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....
1303072873;wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;.....

wäre sehr dankbar für Anregungen
 
Morgen,

auf die schnelle.
Code:
$ cat dummyfile 
wert1
wert2
wert3
wert4
wert5
wert6
wert7
wert8
wert9
wert10

$ for i in `cat dummyfile`  ; do echo -ne "$i;" ; done ; echo ""
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;

Finde ich zwar nicht unbedingt übersichtlicher als awk aber egal. Du könntest auch mit dem $IFS rumspielen.

mfg
HeadCrash
 
Zuletzt bearbeitet:
Danke ! habe noch nicht ausprobiert, aber das werde ich heute Abend.
Habe trotzdem paar Fragen

Wo lässt sich da die date +%s Funktion integrieren ?
Wie leite ich das ganze in eine Datei um ? so dass beim nächsten aufruf der schleife die werte unten angehängt werden so:

Code:
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;
wert1;wert2;wert3;wert4;wert5;wert6;wert7;wert8;wert9;wert10;

man muss dann warscheinlich beim echo noch /n oder so anhängen.

by the way: eleganteste Lösung für ein Teil meines Problems finde ich das
Code:
tr '\n' ';'
 
Code:
stamp=`date +%s` ; echo -ne "$stamp;" ; for i in `cat eingabedatei`; do echo -ne "$i;" ; done ; echo "" >> ausgabedatei
mfg
HeadCrash
 

Ähnliche Themen

awk: Dateiinhalt/Variableninhalt als Teil einer if-Anweisung

Zurück
Oben