Как удалить текст после 3-й строки в нескольких файлах
Я ищу способ, чтобы я мог удалить строки в текстовых файлах после определенной строки.
например, файл содержит 5 строк. Я хочу удалить строки после третьей строки. увидеть,
- Строка 1
- Линия 2
- Линия 3
- хххххх
- xxxxxx1
здесь я хочу сохранить первые 3 строки (строка 1, строка 2, строка 3) и удалить оставшиеся 2 строки (xxxxxx, xxxxxx1) и автоматически сохранить этот текстовый файл. Я хочу сделать это для нескольких текстовых файлов. Хотите удалить каждую строку после 3-й строки в каждом текстовом файле внутри папки.
Любой способ сделать это с помощью блокнота ++?? заранее спасибо
2 ответа
Это похоже на вполне стандартную текстовую операцию для ряда инструментов Linux (не говоря уже о технической некорректности), одним из которых является GNU sed. Пока Bash/Ubuntu не выйдет для Windows 10, вы можете использовать что-то вроде git bash, которое я тестировал для работы с приведенной ниже командой.
sed -i '4,$d' *
Удалит все строки, начиная с 4-й строки, во всех файлах в каталоге, в котором вы находитесь.
Это можно сделать, не устанавливая программное обеспечение, а создавая простой пакетный скрипт. Вот скрипт, который будет делать то, что вы хотите:
@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
файл.