warum geht das nicht (awk)

Post Reply
Message
Author
eq

warum geht das nicht (awk)

#1 Post by eq »

textdatei;

Name1, Vorname1, Adresse1
Name2, Vorname2, Adresse2
Name3, Vorname3, Adresse3
Name4, Vorname4, Adresse4

soll konvertiert werden

Name1,Vorname1,Adresse1,00000000.zip
Name2,Vorname2,Adresse2,00000001.zip
Name3,Vorname3,Adresse3,00000002.zip
Name4,Vorname4,Adresse4,00000003.zip

ich möchte also einfach einen Zähler haben, der mir eine achtstellige zahl anhängt + ".zip"

BEGIN {FS=","}
x=0;
{
print("%s,%s,%s,$08i.zip", $1,$2,$3,$x);
x++;
}


das geht jedoch nicht :( .. warum zählt er nicht und schreibt mir das als $x ???

DANKE

Jochen

Re: warum geht das nicht (awk)

#2 Post by Jochen »

<li>Variablen werden im awk einfach als Name ohne vorangestelltes $ verwendet. Wenn man ein $ vorneweg stellt, heisst das, dass man den Inhalt des Feldes aktuellen Zeile haben will, dessen Nummer in der Variablen enthalten ist. Beispiel: <blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">{
x=2
print "Inhalt von x: " x
print "Inhalt des " x ". Feldes: " $x
}</font><hr></pre></blockquote>

<li>Die Formatangabe für Integerwert ist meines Wissens "d", nicht "i". (Kann das der awk?)

<li>Formatangaben zu printf werden mit "%" und nicht mit "$" eingeleitet (also "%08d.zip", nicht "$08d.zip").

<li>Du hast das "\<!--no-->n" beim printf vergessen...

Jochen

eq,

Re: warum geht das nicht (awk)

#3 Post by eq, »

hi,

Danke für die Antwort...

Okay Formatangaben nicht wie in C ...
$08i war ein tippfehler
\<!--no-->n wurde "gefressen" <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

ich tu mich mit der Syntax von awk etwas schwer, da sie stark von der mir sonst bekannten Syntax(Konzept) abweicht

vielen Dank

Jochen

Re: warum geht das nicht (awk)

#4 Post by Jochen »

> Okay Formatangaben nicht wie in C ...
Doch, gerade! Aber die man-Page zu awk lässt bei printf für Integers sowohl %d als auch %i zu - ich habe zwar nix falsches gesagt, aber auch nix 100%ig korrektes...

> $08i war ein tippfehler
Weswegen ich an Deiner Stelle immer mit Copy'n'Paste arbeiten würde. Sonst kriegt man Fehler angezeigt, die im eigentlichen Skript gar nicht vorhanden sind...

> \<!--no-->n wurde "gefressen"
Jau, immer wieder gerne genommener Fehler hier im Board. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> Aber normalerweise hätte das Board an dieser Stelle einen echten Umbruch gemacht - bist Du sicher, dass es nicht doch ein Tappfehler war? (Nicht, dass das irgendeine tiefere Bedeutung hätte, ich bin bloss neugierig.)

Jochen

eq

Re: warum geht das nicht (awk)

#5 Post by eq »

test
test\<!--no-->n (Vorschau zeigt das anders kann auch vertippert gewesen sein)

Copy&Paste ist leider bei mir hier nicht möglich, da der Rechner ein HP-UX ist .. und nicht im Netz ist :(
Du hast mit beser sehr viel geholfen ... nochmals vielen Dank

Post Reply