Schiri: Werkzeug für bestimmte Editierzwecke

Hallo,
kennt jemand ein Programm, mit dem ich in einer Textdatei (HTML u.a.)
a. eine Zeile einfügen kann nach einem bestimmten Ausdruck
  (wie "suchen und ersetzen" die Funktion "suchen und danach   einfügen"
b. Leerzeilen löschen kann?

  1. Hallo,

    Versuchs mal damit:

    http://forum.de.selfhtml.org/archiv/2005/2/t100539/#m616155

    MfG

    1. Hallo,
      ersetzen können in der Tat viele.
      Was ich möchte, habe ich aber dabei nicht gefunden.
      Wie soll man als Suchkriterium eine Leerzeile angeben?
      Wie soll man als Ersetzungstext angeben 'irgendwas<neue Zeile>irgendwas'?

      1. Hi Schiri,

        ersetzen können in der Tat viele.
        Was ich möchte, habe ich aber dabei nicht gefunden.
        Wie soll man als Suchkriterium eine Leerzeile angeben?
        Wie soll man als Ersetzungstext angeben 'irgendwas<neue Zeile>irgendwas'?

        Wo ist das Problem:
        1. Ersetze "irgendwas" mit "irgendwas irgendwas Neues", dann steht hinter irgendwas, deine eingefügte Zeile.

        2. Leerzeilen findest und ersetzt du am Besten mit einem hexeditor.
        Da nicht auszuschließen ist, dass die Zeilen gar nicht richtig leer sind. Im hexeditor siehst du, was dort tatsächlich steht und kannst dies ersetzen.

        ciao
        romy

        1. Wo ist das Problem:

          1. Ersetze "irgendwas" mit "irgendwas irgendwas Neues", dann steht hinter irgendwas, deine eingefügte Zeile.

          und wie kriegst Du den Zeilenwechsel hin?

          1. Leerzeilen findest und ersetzt du am Besten mit einem hexeditor.
            Da nicht auszuschließen ist, dass die Zeilen gar nicht richtig leer sind. Im hexeditor siehst du, was dort tatsächlich steht und kannst dies ersetzen.

          Ich habe aber in vielen Dokumenten an vielen Stellen das Problem.
          Mit einem normalen Editor wäre ich Tage beschäftigt.
          Und eine Leerzeile müßte man doch definieren können?
          z.B. keine Zeichen ausser x"20" und dem abschliessenden x"0D0A"

          1. Hi Schiri,

            und wie kriegst Du den Zeilenwechsel hin?
            Ich habe aber in vielen Dokumenten an vielen Stellen das Problem.
            Mit einem normalen Editor wäre ich Tage beschäftigt.
            Und eine Leerzeile müßte man doch definieren können?
            z.B. keine Zeichen ausser x"20" und dem abschliessenden x"0D0A"

            Das einzige, was mir einfällt ist der Total Commander mit seinem Mehrfach Umbenenntool, welches reg.Ex. unterstützt.
            Wie die Reg.Ex. in deinem Fall auszusehen hat kann ich nicht sagen, ich stecke da zuwenig drin, aber es geht auf diese Weise in jedem Falle.

            ciao
            romy

  2. gudn tach!

    kennt jemand ein Programm, mit dem ich in einer Textdatei (HTML u.a.)
    a. eine Zeile einfügen kann nach einem bestimmten Ausdruck
      (wie "suchen und ersetzen" die Funktion "suchen und danach   einfügen"
    b. Leerzeilen löschen kann?

    ja, sed oder perl (gibts fuer linux und auch fuer windows)

    z.b.

    a) perl -pi -e "s/(ausdruck.*)/\1\n/" file.ext
      b) perl -pi -e "s/^\r?\n//" file.ext

    oder alternativ

    a) cat input.ext | perl -pi -e "s/(ausdruck.*)/\1\n/" > output.ext
      b) cat input.ext | perl -pi -e "s/^\r?\n//" > output.ext

    falls du mehrere dateien rekursiv bearbeiten willst, kannst du das entweder ueber eine schleife (stichwort "for") bewerkstelligen oder ueber tools wie diesem in perl geschriebenen hier.

    prost
    seth

    1. Habe es ausprobiert.
      Muß vorausschicken, mit Perl habe ich noch nicht viel gemacht, daher kann ich mit den Fehlermeldungen nichts anfangen.
      In der Variante
         perl -pi -e "s/(ausdruck.*)/\1\n/" file.ext
      kommt die Meldung:
        can't do inplace edit without backup.
      In der Variante
        cat input.ext | perl -pi -e "s/(ausdruck.*)/\1\n/" > output.ext
      kommt die Meldung:
        Der Befehl cat ist falsch oder er wurde nicht gefunden.

      1. gudn tach!

        Muß vorausschicken, mit Perl habe ich noch nicht viel gemacht, daher kann ich mit den Fehlermeldungen nichts anfangen.
        In der Variante
           perl -pi -e "s/(ausdruck.*)/\1\n/" file.ext
        kommt die Meldung:
          can't do inplace edit without backup.

        hmm, bin mir auch nicht sicher. setz mal hinter die option "i" ein ""bak"", also

        perl -pi"bak" -e ...

        In der Variante
          cat input.ext | perl -pi -e "s/(ausdruck.*)/\1\n/" > output.ext
        kommt die Meldung:
          Der Befehl cat ist falsch oder er wurde nicht gefunden.

        ok, also windows. cat gibt's auch fuer windows. (in cygwin oder gnu utils for windows).

        alternativ waere wie gesagt textre, wenn perl eh schon installiert ist:

        textre.pl "^\n" "" --filesRE="dateien.ext"

        prost
        seth

        1. hmm, bin mir auch nicht sicher. setz mal hinter die option "i" ein ""bak"", also

          perl -pi"bak" -e ...

          Du darfst Dir sicher sein, es klappt. Danke!

          1. gudn tach!

            hmm, bin mir auch nicht sicher. setz mal hinter die option "i" ein ""bak"", also

            perl -pi"bak" -e ...

            Du darfst Dir sicher sein, es klappt. Danke!

            ok, ich habe aber noch vergessen zu sagen, dass du dadurch eine bak-datei erzeugst, die du ggf. wieder loeschen solltest. (siehe "perl --help").

            prost
            seth

        2. Hey,

          cat gibt's auch fuer windows. (in cygwin oder gnu utils for windows).

          bitte unxutils nicht mehr bewerben, ist schon seit vier Jahren nicht mehr aktualisiert worden. Besser: http://gnuwin32.sourceforge.net/ cat befindet sich dort im Package TextUtils.

          Ich darf dir jetzt auch einen Katzenkopp verpassen wegen useless use of cat.

          --
          水-金-地-火-木-土-天-海-冥
          1. gudn tach!

            cat gibt's auch fuer windows. (in cygwin oder gnu utils for windows).
            bitte unxutils nicht mehr bewerben, ist schon seit vier Jahren nicht mehr aktualisiert worden. Besser: http://gnuwin32.sourceforge.net/ cat befindet sich dort im Package TextUtils.

            ah, das kannte ich noch nicht. dass das andere ist zwar alt war, war mir bewusst, aber es funzte eben... ;-)

            ok, also jetzt gnuwin32.

            Ich darf dir jetzt auch einen Katzenkopp verpassen wegen useless use of cat.

            oops ja, doof.

            perl -pe "s/^\n//" infile > outfile

            so ok?

            prost
            seth

  3. kennt jemand ein Programm, mit dem ich in einer Textdatei (HTML u.a.)
    a. eine Zeile einfügen kann nach einem bestimmten Ausdruck
      (wie "suchen und ersetzen" die Funktion "suchen und danach   einfügen"
    b. Leerzeilen löschen kann?

    »»

    Ja. Word.