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
Probleme mit awk
Re: Probleme mit awk
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
}
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
}
Re: Probleme mit awk
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
<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
Re: Probleme mit awk
danke dir .... werde das dann doch gleich mal probieren ...
awk wird mir langsam sehr sympatisch
nochmals vielen vielen Dank
awk wird mir langsam sehr sympatisch
nochmals vielen vielen Dank