formatieren mit awk

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von BrynFury, 27.01.2008.

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

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #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
     
  4. #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?!
     
  5. #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.
     
  6. #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...
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #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)}'
    
     
  9. #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. 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...