Anzeige:
Ergebnis 1 bis 4 von 4

Thema: bash/sed: teilweise unbekannten string ersetzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    242

    bash/sed: teilweise unbekannten string ersetzen

    hallo,

    ich möchte in einer Datei einen Sring ersetzen, den ich nur teilweise kenne.
    Denke mal das sed da das richtige dafür ist, komme aber mit den Regex dafür nicht zurecht.

    In der Zeile:
    Code:
    bla bla 123 xxxxx-23.4.txt bla bla bla
    soll "xxxxx-23.4.txt" mit xxxxx-000.txt ersetzt werden.

    das wort ist aber weder immer an der 4. stelle, noch kann ich 23.4 umschreiben, da das mal mehr mal weniger zahlen und punkte sind.

    dachte ja das ich mit s/xxxxx-*.txt/xxxxx-000.txt/g da weiterkomme, tuts aber nicht.

    hat jemand eine idee?


    Nachtrag: irgenwie scheint das "-" schuld zu sein.
    Geändert von meinereinerseiner (05-05-2011 um 12:43 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    242
    schön, wenn man sich seine Probleme auch mal selbst lösen kann, aber so gehts:

    Code:
    echo 'bla bla 123 xxxxx-23.4.txt bla bla bla' | sed 's/xxxxx-.*.txt/xxxxx-000.txt/g'
    der punkt vorm * ist irgendwie entscheidend, wenn ich auch nicht weis warum.

    tom

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    . = beliebiges zeichen
    * = bezieht sich auf das zeichen davor, dieses muss 0-n mal auftreten, es werden so viele davon genommen wie möglich


    also

    .* = beliebig viele zeichen (auch keins). Das Ding ist gierig und nimmt so viel wie es kriegen kann

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    242
    ja, macht sinn, versteh sogar ich

    thx!

    tom

Lesezeichen

Berechtigungen

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