Ich suche nach einer Windows-Software, die Zeilen in Textdateien nach einer bestimmten Zeile massenhaft löschen kann.
Beispielsweise enthält eine Datei 5 Zeilen. Ich möchte Zeilen nach der dritten Zeile löschen. sehen:
Line 1
Line 2
Line 3
xxxxxx
xxxxxx1
Hier möchte ich die ersten 3 Zeilen (Zeile 1, Zeile 2, Zeile 3) behalten und die verbleibenden 2 Zeilen (xxxxxx, xxxxxx1) löschen und diese Textdatei automatisch speichern. Ich möchte dies mit mehreren Textdateien tun. Möchten Sie jede Zeile nach der 3. Zeile in jeder Textdatei in einem Ordner löschen.
Irgendeine Windows-Software dafür?
GnuWin kann das, zB sed
. Geben Sie in der Befehlszeile ein
for %f in ("*.txt") do C:\...\sed -i "1,3!d" "%f"
Der for
Befehl ist Teil der Windows-Befehlszeile. %f
definiert eine Variable, die den Dateinamen enthält. in ("*.txt")
definiert, welche Dateien verarbeitet werden sollen. do C:\...\sed
weist Windows an, einen Befehl auszuführen.
-i
wird eine In-Place-Operation ausführen, dh in dieselbe Datei schreiben. 1,3
definiert eine Reihe von Zeilen, !
wählt alle anderen Zeilen aus, d
löscht sie und "%f"
übergibt die zu verarbeitende Datei an SED, damit es weiß, welche Datei verarbeitet werden soll.
GnuWin läuft unter Windows und ist kostenlos.
-i.bak
, die ein Backup aller Dateien erstellt, bevor Sie sie ändern (mit der Erweiterung .bak).Dies kann ohne Installation von Software erfolgen, sondern durch Erstellen eines einfachen Batch-Skripts. Hier ist ein Skript, das das tut, was Sie wollen:
@echo off > NEWFILE & setLocal enableDELAYedeXpansioN
set/p D=delete all after what line?
set N=
:main
for /f "tokens=* delims= " %%a in (file.txt) do (
set/a N+=1
if !N! leq !D! echo.%%a
) >> NEWFILE
Wo file.txt
ist die eigentliche Datei. Wenn Sie dieses Skript ausführen, werden Sie gefragt, welche Zeile danach gelöscht werden soll. Sagen Sie einfach 3
. Kopieren Sie den obigen Code und fügen Sie ihn in eine .bat
Datei ein.
Es gibt viele Möglichkeiten, dies mit einfachen Unix/Linux-Tools zu tun.
Ich würde empfehlen, in Ihrem Fall awk zu verwenden. Um awk unter Windows auszuführen, können Sie eine Windows-Portierung von awk verwenden .
Meine persönliche Erfahrung ist, dass es sich schnell lohnt, awk zu lernen, wenn man ab und zu Textverarbeitung machen muss.
Tom
Benutzer3548321
Tom