formatieren mit awk

Diskutiere formatieren mit awk im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; hey zusammen, ich wieder..;) möchte mit awk verschiedene strings formatieren awk '{printf("%s\t \t%s \t%s \t%s \t%s \n"), $NAME, $PERSONR,...

  1. #1 BrynFury, 27.01.2008
    BrynFury

    BrynFury Grünschnabel

    Dabei seit:
    24.01.2008
    Beiträge:
    8
    Zustimmungen:
    0
    hey zusammen, ich wieder..;)
    möchte mit awk verschiedene strings formatieren

    Code:
    awk '{printf("%s\t \t%s \t%s \t%s \t%s \n"), $NAME, $PERSONR, "24", $EINTRITTSDAT, $JAHRESGEHALT}' >> result.txt
    
    kann man das so stehen lassen, ohne die angabe einer datei!?!
    wie könnte ich das problem lösen?
     
  2. #2 Wolfgang, 27.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Wo bekommst du denn die Eingabe her?
    Hinter einer Pipe geht das schon.

    Gruß Wolfgang
     
  3. #3 BrynFury, 27.01.2008
    BrynFury

    BrynFury Grünschnabel

    Dabei seit:
    24.01.2008
    Beiträge:
    8
    Zustimmungen:
    0
    die eingabe hab ich vorher aus einer tabelle zusammengestellt, ebenfalls mit awk...
    aber dürfte ja im grunde genommen egal sein oder?!
     
  4. #4 Wolfgang, 28.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Und wie kommt die Tabelle in awk?
    Nein, ist nicht egal.
    awk bekommt seine Daten von einer pipe oder einem File.
     
  5. #5 BrynFury, 28.01.2008
    BrynFury

    BrynFury Grünschnabel

    Dabei seit:
    24.01.2008
    Beiträge:
    8
    Zustimmungen:
    0
    also auf die daten komme ich wie folgt:
    Code:
    NAME=$(awk '{print $2}' /home/personal.txt | grep ^$nachname)
    
    also wenn ich die strings mit "echo" ausgebe, dann haben sie den richtigen inhalt...aber wenn ich sie formatieren will, wie oben genannt, dann macht er einfach nicht weiter...
     
  6. #6 Hans Dampf, 28.01.2008
    Zuletzt bearbeitet: 28.01.2008
    Hans Dampf

    Hans Dampf Jungspund

    Dabei seit:
    19.01.2008
    Beiträge:
    20
    Zustimmungen:
    0
    Also, die Variablen sind bereits eingerichtet? Dann geht es (auch) so:
    Code:
    echo $NAME, $PERSONR, "24", $EINTRITTSDAT, $JAHRESGEHALT | \
      awk '{printf("%s\t \t%s \t%s \t%s \t%s \n", $1, $2, $3, $4, $5)}' -
    
    oder so
    Code:
    printf "%s\t \t%s \t%s \t%s \t%s \n" $NAME $PERSONR "24" \
      $EINTRITTSDAT $JAHRESGEHALT
    
    Allerdings gibt es Probleme, wenn eine Variable ein Leerzeichen enthält. Das wäre eine mögliche Lösung für solche Fälle:
    Code:
    SEPARATOR='@' #Dieses Zeichen sollte sonst nicht vorkommen
    
    echo $NAME $SEPARATOR $PERSONR $SEPARATOR "24" $SEPARATOR $EINTRITTSDAT \
        $SEPARATOR $JAHRESGEHALT | awk -F$SEPARATOR '{printf( \
        "%s\t \t%s \t%s \t%s \t%s \n", $1, $2, $3, $4, $5)}'
    
    Oder die für die C-Shell
    Code:
    set SEPARATOR='@'
    
    echo $NAME $SEPARATOR $PERSONR $SEPARATOR "24" $SEPARATOR $EINTRITTSDAT \
        $SEPARATOR $JAHRESGEHALT | awk -F$SEPARATOR '{printf("%s\t \t%s \t%s \t%s \t%s \n", $1, $2, $3, $4, $5)}'
    
     
  7. #7 Wolfgang, 29.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ich kenne ja das umhüllende (wrapper) Skript nicht.
    Aber warum erledigst du das nicht einfach bei der Eingabe von /home/personal.txt.
    Da brauchst du nichtmal den zusätzlichen Prozess von grep.
    awk kennt selbst Pattern Matching.
    Du kannst auch Shellvariablen an awk übergeben.
    Option -v
    Code:
    awk -v n=$Name 'n == $2 {....}' inputfile
    
     
Thema: formatieren mit awk
Besucher kamen mit folgenden Suchen
  1. fließtext mit awk umformatieren

    ,
  2. awk formatieren printf

Die Seite wird geladen...

formatieren mit awk - Ähnliche Themen

  1. Datei als image mit mehreren Partitionen: wie kann man diese formatieren?

    Datei als image mit mehreren Partitionen: wie kann man diese formatieren?: Hallo zusammen, wie ich (aus einem Script) eine Datei (img) erstelle und mehrere Partitionen darauf einrichte, ist mir bekannt - es funktioniert...
  2. Wie am Besten 2 TB externe HD partitionieren und formatieren?

    Wie am Besten 2 TB externe HD partitionieren und formatieren?: Hallo, mich würde interessieren wie ihr eine 2 TB große externe Festplatte Partitionieren und formatieren würdet. Die HD ist über USB2.0...
  3. Live CD um Festplatten sicher zu formatieren

    Live CD um Festplatten sicher zu formatieren: Hi, gibt es eigentlich ne Live-cd zum löschen von Festplatten? Also so löschen, dass die Platte guten gewissens verkauft wrden kann. Thx!
  4. sd-karte richtig formatieren

    sd-karte richtig formatieren: hallo ich bin linux anfänger, benutze ubuntu 8.10. ich möchte meine sd-speicherkarte so formatieren, dass man die daten nicht mehr...
  5. Windows mit Hilfe von Knoppix formatieren

    Windows mit Hilfe von Knoppix formatieren: Hallo Jungs (ggf. auch Mädels, weiß ja nicht, ob hier außer mir noch welche rumschwirren ^^) ersteinmal möchte ich sagen, dass ich neu hier in...