1

Я ищу способ, чтобы я мог удалить строки в текстовых файлах после определенной строки.

например, файл содержит 5 строк. Я хочу удалить строки после третьей строки. увидеть,

  • Строка 1
  • Линия 2
  • Линия 3
  • хххххх
  • xxxxxx1

здесь я хочу сохранить первые 3 строки (строка 1, строка 2, строка 3) и удалить оставшиеся 2 строки (xxxxxx, xxxxxx1) и автоматически сохранить этот текстовый файл. Я хочу сделать это с несколькими текстовыми файлами. Хотите удалить каждую строку после 3-й строки в каждом текстовом файле внутри папки.

Любой способ сделать это с помощью блокнота ++?? заранее спасибо

2 ответа2

2

Это похоже на вполне стандартную текстовую операцию для ряда инструментов Linux (не берите в голову техническую некорректность), одним из которых является GNU sed. Пока Bash/Ubuntu не выйдет для Windows 10, вы можете использовать что-то вроде git bash, которое я тестировал для работы с приведенной ниже командой.

sed -i '4,$d' *

Удалит все строки, начиная с 4-й строки, во всех файлах в каталоге, в котором вы находитесь.

1

Это можно сделать, не устанавливая программное обеспечение, а создавая простой пакетный скрипт. Вот скрипт, который будет делать то, что вы хотите:

@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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .