Mit Awk bestimmten Bereich auswählen und nicht ausgeben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von shells, 12.08.2010.

  1. shells

    shells Grünschnabel

    Dabei seit:
    12.08.2010
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen,

    ich habe ein kleines Problem mit awk. Ich habe eine Text Datei
    1 Zeile 1
    2 /* Text
    3 Text
    4 */
    5 Zeile 5
    (Die Zeilennummering ist nur zum Verständnis da)
    und aus der möchte ich die Kommentare (Die Zeilen) die mit /* beginnen
    und mit */ enden rausschneiden und nicht anzeigen (Alles zwischen 2-3).
    Es soll also nur Zeile 1 und 5 angezeigt werden.

    Ich habe es genau anders rum hinbekommen.
    awk '$1 == "/*", $1 == "*/"' test.txt
    gibt alles dazwischen aus (Die Zeilen 2-4).
    Ich habe versucht mit ! das um zudrehen aber es tut leider nicht.
    Bei http://www.pement.org/awk/awk1line.txt und
    http://www.gnu.org/software/gawk/manual/html_node/Ranges.html
    habe ich auch nichts passendes gefunden.

    Kann mir vielleicht da jemand Bitte weiter helfen?

    Zu Not würde auch sed gehen. Perl ist auf der Maschine nicht installiert und
    wird auch nicht installiert werden.

    Grüße
    Sabine
     
  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 Rvg, 12.08.2010
    Zuletzt bearbeitet: 12.08.2010
    Rvg

    Rvg Doppel-As

    Dabei seit:
    11.07.2004
    Beiträge:
    141
    Zustimmungen:
    0
  4. #3 floyd62, 12.08.2010
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Hi Sabine,

    dein Kommando lässt sich ganz einfach folgendermassen "umdrehen":
    Code:
    awk '$1 == "/*", $1 == "*/" { next } { print }' 
    
    Wenn alle Kommentare sich über mehrere Zeilen erstrecken, das einleitende "/*" ebenso wie der Abschluss "*/" jeweils am Anfang einer Zeile stehen, lassen sich diese Kommentare mit
    Code:
    sed '/^\/\*/,/^\*\//d'
    
    entfernen; sonst wird das Ganze komplizierter, und du brauchst so etwas wie z.B. die von Rvg erwähnten Beispiele.

    Gruss
     
Thema:

Mit Awk bestimmten Bereich auswählen und nicht ausgeben

Die Seite wird geladen...

Mit Awk bestimmten Bereich auswählen und nicht ausgeben - Ähnliche Themen

  1. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...
  2. bestimmten Bereich einer Log ausgeben

    bestimmten Bereich einer Log ausgeben: Hallo, hier gab es zwar schon einige Threads zu dem Problem, jedoch habe ich keine Antwort auf meine Frage gefunden. Und zwar, möchte ich...
  3. Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?

    Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?: In mehreren Dateien ist immer mehrfach ein bestimmtes Wort enthalten, gefolgt von einem "=". Ich möchte mir die dahinter folgenden 10 Zeichen...
  4. SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird

    SSH Login nur mit einer bestimmten IP die in einer Textdatei gespeichert wird: Hallo Ich bin andauernd Opfer einer Brute Force Attacke. Die IPs die fehlerhafte Logins produzieren werden nach dem 3ten Versuch gesperrt. Aber...
  5. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...