awk-Script zum laufen bringen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von ninette111, 15.09.2005.

  1. #1 ninette111, 15.09.2005
    ninette111

    ninette111 Grünschnabel

    Dabei seit:
    05.09.2005
    Beiträge:
    7
    Zustimmungen:
    0
    Hallo!

    Ich bin gerade dabei ein awk-Script als Filter in Doxygen (ein Werkzeug zur automatischen erstellung von Dokumentationen zu einem Quellcode) einzubauen. Dabei ist mir folgendes aufgefallen:

    wenn ich mein script so aufrufe:

    Code:
     sh filter.sh

    Wobei filter.sh so aussieht

    Code:
     #!/bin/sh
    awk '{ if($0 ~ /^["\t"| ]*\/\*\*/) {
    comment=1;
     mycomment=" ";
     printcomment=0; 
    }; if($0 ~ /@since\ 2\.6/) {
     printcomment=1;
    }; if (comment==1) {
     mycomment=mycomment "\n" $0;
    }else {
    print $0;
    }; if($0 ~ /[*]\/$/) {
    comment=0;
     if(printcomment==1) {
      print mycomment;
    }else {
      printcomment=0;
    };
    }; }' Font.hpp > test5.hpp

    ..dann funktioniert alles, und macht genau das richtige.

    Wenn ich allerdings mein script mit

    Code:
     awk -f filter.awk  Font.hpp > test5.hpp

    aufrufe, mit folgender datei filter.awk

    Code:
    #!/bin/awk
    { if($0 ~ /^["\t"| ]*\/\*\*/) {
    comment=1;
     mycomment=" ";
     printcomment=0; 
    } if($0 ~ /@since\ 2\.6/) {
     printcomment=1;
    } if (comment==1) {
     mycomment=mycomment "\n" $0;
    }else {print $0;} 
    if($0 ~ /[*]\/$/) {
    comment=0;
     if(printcomment==1) {
      print mycomment;
    }else {
      printcomment=0;}} }
    Dann bekomme ich plötzlich sehr viele Parser-Errors (meist " ^ invalid char ' ' in expression:2:")
    ". Außerdem erkennt er keine Zeilenumbrüche , weil das für ihn ebenfalls invalid characters sind. Warum ist denn das? Wie ist es möglich das Script auf die 2. Variante zum laufen zu bringen (so bräuchte ich es nämlich für Doxygen).

    Tipps wären suuuper! :)

    LG
    Nine.

    PS: Die Zeilenumbrüche in den Scriptdateien habe ich nur zur besseren Lesbarkeit eingefügt!
     
  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. hmhweb

    hmhweb Mitglied

    Dabei seit:
    29.11.2004
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo Nine,

    mal so auf's geradwohl geraten: Quote doch mal in Deinem awk-script den kompletten Ausdruck mit ' ( also vor der ersten und nach der letzten geschweiften Klammer einmal).
    Nicht das hier als $0 awk selber steht. Ansonsten welcher awk ( oder gawk) auf welchem System benutzt Du ?

    Grüße
    hmh
     
  4. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Willkommen im Forum, Nine! :)

    Wie sieht die Font.hpp aus? Editierst Du unter Windows?

    Gruss, Phorus
     
  5. #4 ninette111, 15.09.2005
    ninette111

    ninette111 Grünschnabel

    Dabei seit:
    05.09.2005
    Beiträge:
    7
    Zustimmungen:
    0
    Hi ja, ich editiere unter Windows!
    Ich glaube, das war sogar das Problem, weil jetzt gehts obwohl ich am Quellcode selber nix geändert hab.

    Ich hab mir nur aus dem internet ein vorgefertigtes awk-script runtergeladen, darin dann meinen Code geschrieben, und dann is plötzlich gegangen!

    Strange!

    Danke
    nine.
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ist nicht "strange" :)

    Unter Windows wird das Zeilenende mit "carriage return" und "line feed" (cr lf) gekennzeichnet, unter Unix mit nur mit lf (cr wurde irgendwann wegrationalisiert -> das spart ein byte ;) )

    awk stösst also bei Dir auf cr und kann damit nix anfangen -> Fehler

    Gruss, Phorus
     
Thema:

awk-Script zum laufen bringen

Die Seite wird geladen...

awk-Script zum laufen bringen - Ähnliche Themen

  1. Ubuntu soll nativ unter Windows 10 laufen

    Ubuntu soll nativ unter Windows 10 laufen: In einer Keynote bei Microsofts derzeit stattfindender Entwicklerkonferenz Build werden am 31. März Einzelheiten zur einer nativen Integration von...
  2. GSoC2016: Bewerbungsfrist für Studenten angelaufen

    GSoC2016: Bewerbungsfrist für Studenten angelaufen: Nachdem Google Ende Februar die Liste der knapp 180 akzeptierten Projekte veröffentlichte, können sich ab sofort auch Studenten für die Teilnahme...
  3. Zarafa will Outlook-Unterstützung auslaufen lassen

    Zarafa will Outlook-Unterstützung auslaufen lassen: Zarafa will die Unterstützung von MS Outlook als Client seiner gleichnamigen Groupware auslaufen lassen. Doch möglicherweise hat das Unternehmen...
  4. Debian: Bash-Skript darf nur (weiter)laufen, wenn Bildschirmschoner an

    Debian: Bash-Skript darf nur (weiter)laufen, wenn Bildschirmschoner an: Hallo zusammen, ich bräuchte mal einen Hinweis. Ziel ist es, dass das Bash-Skript nur läuft, wenn der PC gerade nicht benutzt wird. Ich dachte...
  5. SSH versucht Verbindung zu abgelaufener IP Adresse

    SSH versucht Verbindung zu abgelaufener IP Adresse: Wieder einmal ein Rätsel: Ich versuche einen Host zu erreichen, dessen IP über freedns.afraid.org aktuell gehalten wird. Mit einem DNS Request...