Probleme mit awk

Post Reply
Message
Author
eq

Probleme mit awk

#1 Post by eq »

folgende Ausgangsdatei:

Name,Vorname,Adresse,e-mail,home,data1,data2,data3,data4
Name,Vorname,Adresse,e-mail,home,data1
Name,Vorname,Adresse,e-mail,home,data1,data2,data3,data4
Name,Vorname,Adresse,e-mail,home,data1,data2,data3
Name,Vorname,Adresse,e-mail,home,data1,data2

nun möchte ich die felder data1 bis data$x extraieren:

data1,data2,data3,data4
data1
data1,data2,data3,data4
data1,data2,data3
data1,data2

folgendes script sollte das machen:

BEGIN { FS=",";RS="
" }
{
n=5; #setze Zähler auf 5;
data=substr($6,0); #nimm 5.Zeile als Start, damit data ein gültiger Wert ist
while(data) #solange data gültig
{
n++; #adiere auf Zähler 1
data=substr($n,0) #Nim Inhalt von Feld n
printf("%s," data) #Gib Inahlt von Feld mit "," am Ende aus
}
printf("
"); #Zeilenende
}

Zumindest wäre das für mich "logisch" <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> Wo ist da der Fehler ... ???

DANKE

eq

Re: Probleme mit awk

#2 Post by eq »

oh einige Fehlerchen im Script ... da wurde was vom Forum verschluckt:

BEGIN { FS=",";RS="\<!--no-->n" } #delimiter ist, Zeilenende ist \<!--no-->n
{
n=5; #setze Zähler auf 5;
data=substr($6,0); #nimm 5.Zeile als Start, damit data ein gültiger Wert ist
while(data) #solange data gültig
{
n++; #adiere auf Zähler 1
data=substr($n,0) #Nim Inhalt von Feld n
printf("%s," data) #Gib Inahlt von Feld mit "," am Ende aus
}
printf("\<!--no-->n"); #Zeilenende
}

Jochen

Re: Probleme mit awk

#3 Post by Jochen »

Ui, da machst Du's aber kompliziert... <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#!/usr/bin/awk -f
BEGIN {FS="," } # RS muss nicht gesetzt werden, da der Default passt.
NF > 5 { # Nur wenn auch mindestens 6 Felder vorhanden sind (und damit wenigstens data1)
out=""
for (i=6 ; i <= NF ; i++) {
out = out "," $i
}
print substr (out,2) # Das erste Komma unterdrücken
}</font><hr></pre></blockquote>Denke Dir "$" als Operator, der den Wert der Variablen nimmt und in das ensprechende Feld der Zeile schaut. Sorry, dass ich mir Deine Lösug nicht näher angetan habe und daher nicht viel zum Fehler sagen kann - vielleicht später noch.

Jochen

eq

Re: Probleme mit awk

#4 Post by eq »

danke dir .... werde das dann doch gleich mal probieren ...

awk wird mir langsam sehr sympatisch

nochmals vielen vielen Dank

Post Reply