
Ich habe eine extrem lange Textdatei (ca. 15.000 Zeilen). Sie enthält nur Zahlen (6 Zahlen, getrennt durch ein Leerzeichen). Mich interessieren nur die ersten drei Zahlen jeder Zeile. Ich habe versucht, die Spaltenmodusauswahl zu verwenden und sie nach unten zu ziehen, aber das ist sehr langsam und ich muss mehrere Dateien verwalten.
Ich habe auch den Trick mit der Anfangs-/Endauswahl ausprobiert, allerdings scheint er bei Spalten nicht zu funktionieren.
Gibt es eine Möglichkeit, automatisch nur die letzten drei Zahlenspalten in einer Textdatei auszuwählen? Eine Möglichkeit wäre eine Option, alle Zeilen in einer oder mehreren angegebenen Spalten auszuwählen. Ist das überhaupt möglich?
Antwort1
Versuche dies:
- Drücken Sie CTRL+ Home, um den Eingabecursor an den Anfang des Dokuments zu bewegen.
- Verwenden Sie jetzt die Bildlaufleiste, um schnell zum Ende des Dokuments zu scrollen, ohne die Position des Schreibcursors zu ändern. Sie können den Schieberegler der Bildlaufleiste ziehen, um schnell zum Ende des Dokuments zu gelangen. Das geht wirklich schnell.
- Bewegen Sie den Mauszeiger nach der dritten Zahl der letzten Zeile, halten Sie Alt+ gedrückt Shiftund klicken Sie.
Bingo!
Antwort2
Dies kann mit dem folgenden regulären Ausdruck erfolgen, vorausgesetzt, Ihre Zahlen sind nur Zahlen (also keine Kommas oder Dezimalpunkte):
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
1111 2222 3333 4444 5555 6666
STRG-H, um zu „Suchen und Ersetzen“ zu gelangen
Find what: .*\s(\d+\s\d+\s\d+)$
Replace with: \1
Search Mode: Regular expression
Eine Erklärung des Find-Regex:
.* = match anything, repeating
\s = match single whitespace
( = start capture group
\d+ = match one or more numerals
\s = match single whitespace
\d+ = match one or more numerals
\s = match single whitespace
\d+ = match one or more numerals
) = end capture group
$ = match end of line
Und das Ersetzen-Feld:
\1 = capture group 1 from the prior regex match (everything matched between the ( and the ))
Das Ersetzen hat einige Sekunden gedauert und hinterlässt die letzten drei Zahlenspalten, d. h.
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
4444 5555 6666
Screenshot der NPP-Ersetzungsbox: