Я ищу программное обеспечение для Windows, которое может массово удалять строки в текстовых файлах после определенной строки.
Например, файл содержит 5 строк. Я хочу удалить строки после третьей строки. видеть:
Line 1
Line 2
Line 3
xxxxxx
xxxxxx1
Здесь я хочу сохранить первые 3 строки (строка 1, строка 2, строка 3) и удалить оставшиеся 2 строки (xxxxxx, xxxxxx1) и автоматически сохранить этот текстовый файл. Я хочу сделать это с несколькими текстовыми файлами. Хотите удалить каждую строку после 3-й строки в каждом текстовом файле внутри папки.
Любое программное обеспечение Windows для этого?
GnuWin может это сделать, например sed
. В командной строке введите
for %f in ("*.txt") do C:\...\sed -i "1,3!d" "%f"
Команда for
является частью командной строки Windows. %f
определяет переменную для хранения имени файла. in ("*.txt")
определяет, какие файлы обрабатывать. do C:\...\sed
говорит Windows запустить команду.
-i
выполнит операцию на месте, т.е. запишет в тот же файл. 1,3
определяет диапазон строк, !
выбирает все остальные строки, d
удаляет их и "%f"
передает файл для обработки в SED, поэтому он знает, какой файл обрабатывать.
GnuWin работает в Windows и является бесплатным.
-i.bak
, которое создаст резервную копию всех файлов перед их изменением (с расширением .bak).Это можно сделать без установки программного обеспечения, а вместо этого создав простой пакетный скрипт. Вот скрипт, который будет делать то, что вы хотите:
@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
Где file.txt
собственно файл . Когда вы выполняете этот скрипт, он спросит вас, после какой строки удалить, просто скажите 3
. Скопируйте приведенный выше код и вставьте его в .bat
файл.
Есть много способов сделать это, используя базовые инструменты Unix/Linux.
Я бы рекомендовал использовать awk в вашем случае. Чтобы запустить awk в Windows, вы можете использовать порт awk для Windows .
Мой личный опыт показывает, что быстро окупается изучение awk, если вам приходится время от времени обрабатывать текст.
Том
пользователь3548321
Том