regulären Ausdruck an einem bestimmten Muster etwas hinzufügen

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von joon, 20.11.09.

  1. joon

    joon Grahams Jubiläumsapfel

    Dabei seit:
    17.06.07
    Beiträge:
    106
    Hallo Forum,

    ich habe folgende Zeilen (ein paar Hundert davon), die nach folgendem Schema aufgebaut sind:
    Code:
    1337-8171-1798-000000094;7;1798-07;T
    1337-8171-1798-000000096;7;1798-07;T
    1337-8171-1798-000000097;8;1798-08;T
    1337-8171-1798-000000098;8;1798-08;T
    Ich möchte dass nach dem zweiten Semikolon das "1798-xx" (wobei xx zwei Ziffern sind) die Zeichenfolge "-01" drangehängt wird.

    Also es sollte ungefähr so aussehen:
    Code:
    1337-8171-1798-000000094;7;1798-07-01;T
    1337-8171-1798-000000096;7;1798-07-01;T
    1337-8171-1798-000000097;8;1798-08-01;T
    1337-8171-1798-000000098;8;1798-08-01;T
    Ich krieg das mit den regulären Ausdrücken nicht hin...

    Vielen Dank!
     
  2. Irgendein Held

    Irgendein Held Oberösterreichischer Brünerling

    Dabei seit:
    17.06.07
    Beiträge:
    714
    Beispiel fuer Ruby:
    Code:
    irb(main):001:0> "1337-8171-1798-000000094;7;1798-07;T".gsub(/(;\w)$/,"-01\\1")
    => "1337-8171-1798-000000094;7;1798-07-01;T"
    Das Pattern ist: /(;\w)$/
    Du benoetigt eine Funktion, die dir das ersetzen ermoeglicht.
    In meinem Fall war das gsub. Dort setzt du dein -01 vor die Backreference \1
    und das sollte es gewesen sein.


    Viel Erfolg.
     
  3. Der_Apfel

    Der_Apfel Transparent von Croncels

    Dabei seit:
    03.12.07
    Beiträge:
    305
    Oder wenn du es direkt in vi ändern möchtest:

    Code:
    :%s/;1798-\([0-9][0-9]\);/;1798-\1-1;/g
    
    Oder allgemeiner einfach vor das dritte Semikolon -1 schreiben:

    Code:
    :%s/\(;.*;.*\);/\1-1;/g
     
  4. Irgendein Held

    Irgendein Held Oberösterreichischer Brünerling

    Dabei seit:
    17.06.07
    Beiträge:
    714
    Auch da kann man sich kuerzer fassen ;)
    Code:
    :%s/\(;\w$\)/-01\1/g
     
  5. joon

    joon Grahams Jubiläumsapfel

    Dabei seit:
    17.06.07
    Beiträge:
    106
    Hallo ihr beiden,

    vielen Dank für die Tips!!!