Anzeige:
Ergebnis 1 bis 4 von 4

Thema: awk und das Hochkomma

  1. #1
    Joy
    Gast

    awk und das Hochkomma

    Hallo!
    Wie kann ich mit awk nach dem Hochkomma (') suchen lassen?
    Ich möchte in einer Textdatei den String 'ftp durch ftp ersetzen.
    meine awk Zeile:
    awk '{gsub("'ftp","ftp");print $0}' file1 > file2

    So geht es natürlich nicht ... wie muss ich denn das Hochkomma deklarieren, damit er es annimmt?

    Vielen Dank!

    Joy

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    schonmal mit \' probiert, wenn das nicht geht vielleicht mit \\' oder mit \\\'

  3. #3
    Joy
    Gast
    Hallo msi, danke für deine Hilfe.
    Leider nützt weder ein noch mehrere \s was.

    Wenn ich in der Textdatei mit KWrite z.b. alle 's durch ein " ersetzen lassen, dann funktioniert diese awk zeile:
    awk '{gsub("\"","");print $0}' updates2.1 > updates3
    Sie "escaped" das " dann korrekt, und ersetzt alle double-quotes durch einen String der Länge null. Nur geht das mit den single quotes nicht, da diese ja von awk selbst benutzt werden.

    Gibt es noch eine andere Möglichkeit, das singlequote (Hochkomma) Zeichen darzustellen?

    MfG,
    Joy

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.12.2003
    Beiträge
    17
    Das Problem liegt nicht bei awk, sondern an den Quotingmechanismus deiner Shell.
    Code:
    awk '{gsub("'\\''ftp","ftp");print $0}' file1 > file2
    sollte funktionieren. Der Trick Singlequote schliessen, einen gequoteten Singlequote eingeben, Singlequote start

    Allerdings ist hier sed das bessere Tool:

    Code:
    sed s/\\'ftp/ftp/g file1 > file2
    http://wiki.pilgerer.org/ - Das WikiWeb fuer alle Unix Fans und die, die es werden wollen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •