Как удалить текст после 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 файл.

Другие вопросы по тегам