Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
warum geht das nicht (awk)

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eq
Gast





BeitragVerfasst am: 03. März 2004 11:02   Titel: warum geht das nicht (awk)

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 Sad .. warum zählt er nicht und schreibt mir das als $x ???

DANKE
 

Jochen
Gast





BeitragVerfasst am: 03. März 2004 12:00   Titel: Re: warum geht das nicht (awk)

  • 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:
    code:
    {
    x=2
    print "Inhalt von x: " x
    print "Inhalt des " x ". Feldes: " $x
    }



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

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

  • Du hast das "\n" beim printf vergessen...

    Jochen
  •  

    eq,
    Gast





    BeitragVerfasst am: 03. März 2004 14:52   Titel: Re: warum geht das nicht (awk)

    hi,

    Danke für die Antwort...

    Okay Formatangaben nicht wie in C ...
    $08i war ein tippfehler
    \n wurde "gefressen"

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

    vielen Dank
     

    Jochen
    Gast





    BeitragVerfasst am: 03. März 2004 15:10   Titel: Re: warum geht das nicht (awk)

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

    > \n wurde "gefressen"
    Jau, immer wieder gerne genommener Fehler hier im Board. 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
    Gast





    BeitragVerfasst am: 03. März 2004 15:29   Titel: Re: warum geht das nicht (awk)

    test
    test\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 Sad
    Du hast mit beser sehr viel geholfen ... nochmals vielen Dank
     

    Beiträge vom vorherigen Thema anzeigen:   
         Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
    Seite 1 von 1

     
    Gehen Sie zu:  

    Powered by phpBB © phpBB Group
    pro_linux Theme © 2004 by Mandaxy