Massentextmanipulation?

510
coderama

Ich habe eine Textdatei mit ein paar hunderttausend Wörtern. Z.B:

word1 word2 etc 

Ich möchte wissen, welches Programm ich leicht verwenden kann:

  1. Fügen Sie "FRONT" vor dem Text hinzu, und
  2. Fügen Sie am Ende des Textes "BACK" hinzu

Ich würde am Ende mit:

FRONTword1BACK FRONTword2BACK FRONTetcBACK 

Ich kann das leicht tun, indem ich es in PHP programmiere, aber ich möchte wissen, ob es mit dem richtigen Werkzeug einen schnelleren Weg gibt? Vielleicht können Sie dies in Notepad ++, in scite oder im schlimmsten Fall in der Linux-Befehlszeile tun.

Hinweis: Ich würde einen auf WINDOWS basierenden visuellen Editor bevorzugen.

1
Umm? Ja - Notepad ++ - Ersetzen Sie reguläre Ausdrücke ppumkin vor 11 Jahren 3
Okay, kannst du erklären wie? Und ich hatte gehofft, ich könnte reguläre Ausdrücke vermeiden, weil sie schmerzhaft sind. coderama vor 11 Jahren 0
NEIN! Reguläre Ausdrücke sind der Weg, dies zu tun. Ansonsten mach es in PHP wie du gesagt hast. ppumkin vor 11 Jahren 1
http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Regular_Expressions The examples might help! user905686 vor 11 Jahren 1

2 Antworten auf die Frage

3
snowdude

In NotePad ++ ersetzen Sie einen regulären Ausdruck:

Finde was: ^ (. *) $

Ersetzen Sie durch: FRONT \ 1BACK

Was ist in regulären Ausdrücken passiert?

^ - entspricht dem Zeilenanfang
$ - entspricht dem Zeilenende
. * - passt alles dazwischen an (in Klammern, um es als Gruppe zu markieren)

Das Ersetzen ist einfach das, was Sie vor und nach dem Fix fixieren möchten, und der Wert der ersten Regex-Gruppe (dh alles in der Zeile) wird in der Mitte eingefügt.

2
zergu

VIM funktioniert unter Windows. Wenn Sie es nie verwendet haben, haben Sie möglicherweise Probleme beim Starten, aber wenn Sie die Grundlagen lernen, steht Ihnen die ganze Magie zur Verfügung.

1) Fügen Sie vor dem ersten Zeichen in jeder Zeile etwas hinzu:

  • Gehen Sie zur ersten Zeile, ersten Spalte.
  • Strg + v Strg + q, um den visuellen Blockmodus zu aktivieren.
  • Strg + g um zur letzten Zeile zu gelangen.
  • Umschalttaste + i, um den visuellen Einfügemodus zu aktivieren.
  • Geben Sie den Text ein und drücken Sie die Esc-Taste. Der Text sollte in allen Zeilen erscheinen.

2) Am Ende etwas hinzufügen. Wenn alle Wörter dieselbe Länge haben, können Sie wie oben beschrieben vorgehen. Wenn nicht, verwenden Sie Makros.

  • Zur ersten Zeile gehen
  • Drücken Sie zweimal 'q'. Zuerst wird die Aufnahme gestartet, anschließend wird ein Puffer für die Aufnahme ausgewählt (kann ein beliebiger Buchstabe sein).
  • Umschalt + a, um am Ende der Zeile Text einzufügen.
  • Geben Sie den gewünschten Text ein.
  • Esc, um das Einfügen zu stoppen.
  • Abwärtspfeil oder 'j', um zur nächsten Zeile zu gelangen.
  • 'q' erneut, um die Aufnahme zu stoppen.
  • Jetzt können Sie die aufgezeichnete Aktion mit '@@' oder '@q' wiederholen. '@@' gibt den letzten Datensatz wieder, '@q' gibt den im Puffer 'q' wieder (in diesem Beispiel dasselbe).
  • Geben Sie '1000 @@' ein, um das Makro 1000 Mal wiederzugeben.
Danke, aber CTRL-V mit Windows VIM macht ein "Einfügen". Ich werde es weiter versuchen... coderama vor 11 Jahren 0
Versuchen Sie es mit Strg + Q, es sollte kein Konflikt mit dem Einfügen von Windows auftreten. zergu vor 11 Jahren 0