Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 16

Массово убрать из файлов данные начиная N строки и до конца файла

02.08.2017, 15:52. Показов 1975. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Долго читал здесь на форуме всякие разные варианты, не получается родить.

Задача:
Массово убрать из файлов данные начиная N строки и до конца файла. Имеется больше тысячи html (txt).

как отрезать начало нашёл (оставить содержимое начиная со строки №45):
Windows Batch file
1
2
3
4
@echo off
set "dir=c:\12312"
for %%i in ("%dir%\*.html") do >.tmp more +45 "%%i"& >nul move .tmp "%%i"& echo %%~nxi
exit/b
Наверное можно было бы объединить сразу 2 операции отрезать X строк с конца, и затем отрезать
с начала до N строки или наоборот, был бы универсальный инструмент "для кройки и шитья".
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2017, 15:52
Ответы с готовыми решениями:

Командная строки + текстовый файл. поиск по строкам начиная с конца файла
Здравствуйте. Знаю что уже что то подобное было на форуме и не раз. Я это читал и честно пытался понять, но что то не получается...

Как убрать с конца строки знак переноса, после считывания ее из файла?
Всем доброго дня. Говоря подробнее, я считываю информацию из текстового файла. Там находятся фамилии в столбик. После считывания строки, я...

Чтение начиная с конца файла
Всем добрый вечер! Программа создает самопальный класс список как в STL и пишет/ читает с файла Вот результат работы: . Считывать в...

11
 Аватар для volodin661
6791 / 2288 / 348
Регистрация: 10.12.2013
Сообщений: 7,897
02.08.2017, 22:00
Цитата Сообщение от Damn5 Посмотреть сообщение
не получается родить
может попробовать оплодотвориться для начала ?
( например, впустить в себя осознание того факта, что основным средством автоматизации Windows является оболочка powershell )
0
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 16
03.08.2017, 08:24  [ТС]
volodin661,
Извиняюсь, что задел Ваши чувства верующего, но боюсь, что агитация врятли поможет, если бы были способности, то ни кто же не против. Предложите Ваше решение в powershell.

Ну или скрестите ниже представленное с пакетной обработкой множества файлов меня устроит:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
Setlocal EnableDelayedExpansion
chcp 1251>nul
set /p file=Введите имя файла-
set /p m=Введите M-
set /p n=Введите N-
chcp 866>nul
 
Set /A m-=1, n-=1
For /F "delims=" %%A in ('more +%m% ^<"%file%"') do (
  echo %%A
  if !m!==!n! (>nul pause& goto :eof)
  Set /A m+=1
)
взято с ветки:
Вывести на экран текст из файла, начиная со строки № M и заканчивая строкой № N - CMD/BAT
Вывести на экран текст из файла, начиная со строки № M и заканчивая строкой № N

у меня никак не получается
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
03.08.2017, 10:43
Damn5,
после 5й, например
Windows Batch file
1
2
3
4
5
@echo off
set nsd=5
<"file.txt">+ find /v /c ""& <+ set/p strs=& set/a strr=strs-nsd
<"file.txt">+ (sort/+2147483647|more +%strr%|sort/+2147483647|findstr/vrc:"^$")& move+ "file.txt"
exit
Добавлено через 42 секунды
с 3й по 5ю
Windows Batch file
1
2
3
4
5
6
@echo off
setlocal enabledelayedexpansion
set nd=3& set kd=5
for /l %%a in (%nd%,1,%kd%) do set "ns=!ns! /c:"^\[%%a\]""
<"file.txt">$ (for /f "tokens=2 delims=[]" %%a in ('find /n /v ""^|findstr/rv%ns%') do echo %%a)& move $ "file.txt"
exit
0
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 16
03.08.2017, 12:22  [ТС]
alpap, Спасибо за помощь.

Пытаюсь приладить к нескольким файлам не хочет у меня работать, как правильно название для каждого файла подставить ?
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
set nsd=9
set "dir=c:\12312"
for %%i in ("%dir%\*.txt") do (
set file=%%i
<"%file%">+ find /v /c ""& <+ set/p strs=& set/a strr=strs-nsd
<"%file%">+ (sort/+2147483647|more +%strr%|sort/+2147483647|findstr/vrc:"^$")& move+ "%file%"
)
0
 Аватар для volodin661
6791 / 2288 / 348
Регистрация: 10.12.2013
Сообщений: 7,897
03.08.2017, 14:12
Цитата Сообщение от Damn5 Посмотреть сообщение
чувства верующего
Да-да, задеты и задеваются ежедневно тотальной безграмотностью постящихся:
вряд ли - 'д' и раздельно
никто - слитно
ваши - зачем с большой буквы, попроще, у нас переписка неофициальная, я надеюсь.


PowerShell
1
2
$N = 10
dir *.html | foreach { gc $_ | select -first $N > "$_.я_обрезан_по_самые_$N" }
Добавлено через 57 минут
ну и, конечно же
Windows Batch file
1
for %x in (*.html) do @vim +10,$d +x "%x"
2
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 16
03.08.2017, 14:50  [ТС]
volodin661, спасибо за ответы.

про "вряд ли" - действительно не знал,
никто - рефлекс ставить лишние пробелы не усмотрел,
Вас с большой буквы для меня дань уважения к собеседнику.

Код Powershell изменяет кодировку русского языка, не могу понять чем её корректно посмотреть, можно каким-то образом это предотвращать ?

по второму варианту:
Непредвиденное появление: x".
0
 Аватар для volodin661
6791 / 2288 / 348
Регистрация: 10.12.2013
Сообщений: 7,897
03.08.2017, 15:07
Основная однобайтовая кодировка ( локаль ) в
русском Windows - это 'cp1251'.

Соответственно команда
PowerShell
1
chcp 1251
снимет все проблемы.

Какого лешего Microsoft держит кодировку cp866 в консоли по умолчанию мне непонятно.

Цитата Сообщение от Damn5 Посмотреть сообщение
Непредвиденное появление: x".
у тебя нет установленного текстового редактора vim
0
04.08.2017, 00:06

Не по теме:

Цитата Сообщение от Damn5 Посмотреть сообщение
Вас с большой буквы для меня дань уважения к собеседнику.
Дань на Руси издревле принято было изъявлять товарами и прочей ценной материей:
"Мы рады дать тебе мед и рухлядь меховую..." (Повесть временных лет);
а вот уважение - посредством многократного (и искреннего - так что б до искр!) битья челом об пол перед собеседником:
"А на сем тебе твой холопишко Ивашко челом бьет…" (Из челобитной).
:-)

Что касается Вы с прописной, несмотря на "разброд и шатания" в этом вопросе, существует рекомендательная норма, гласящая, что оно более уместно в казенных документах, личных письмах и анкетах
(по мнению специалистов Института русского языка им. В. В. Виноградова, а также well-known Д. Розенталя), нежели,
к примеру, публичном диалоге на форуме и прочих жанрах клавиатурного творчества общего назначения.
Обращение на вы само по себе является признаком нефамильярного отношения к собеседнику. Как говорится, satis superque.

P.S. Да, да - не удивляйтесь, в разделе батников любят позанудствовать не только о том, как правильно знаки процентов по строчкам кода расставлять.

0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.08.2017, 01:02
Цитата Сообщение от Damn5 Посмотреть сообщение
приладить к нескольким файлам
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "d=C:\Papka"
set nsd=5
for /f "delims=" %%a in ('dir /a-d/b "%d%\*.*"') do call :pf "%%a"
pause& exit
 
:pf
 <"%~1">+ find /v /c ""& <+ set/p strs=& set/a strr=strs-nsd
 <"%~1">+ (sort/+2147483647|more +%strr%|sort/+2147483647|findstr/vrc:"^$")& move+ "%~1"
exit /b
1
0 / 0 / 0
Регистрация: 12.07.2012
Сообщений: 16
04.08.2017, 09:22  [ТС]
alpap, огромное спасибо !
Идеальный вариант получился.

Добавлено через 17 минут
Garry Galler, спасибо за информацию.
Конечно же она справедлива и наверное я её запомню и буду применять.

Она напомнила мне давнишний разговор с преподавателем в художественной школе.
Когда дети только приходят в школу у них живые рисунки там есть динамика, краски, движение.
И когда им расказывают правила и техники мастерства всё перечисленное уходит в работах..

Будьте добрее к форумчанам !
не все внимательны при наборе текста, не все имеют идеальное зрение, не все могут дотошно читать текст,
и тем более не все его однозначно воспринимают/понимают.
alpap, Garry Galler, volodin661, спасибо за ваше время, добра вам и здоровья !
0
 Аватар для volodin661
6791 / 2288 / 348
Регистрация: 10.12.2013
Сообщений: 7,897
04.08.2017, 10:50
Цитата Сообщение от Damn5 Посмотреть сообщение
Когда дети только приходят в школу
Неа, за всё время известен только один случай самостоятельного прихода дитя в школу
( 19 век, Филиппок ), всех остальных приводят.
Миниатюры
Массово убрать из файлов данные начиная N строки и до конца файла  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2017, 10:50
Помогаю со студенческими работами здесь

Удалить часть строки, начиная с указанного символа и до конца
Добрый день! Задача заключается в следующем. Есть некоторая фраза, хранящаяся в переменной, например: set var1=слово1.слово2 Так...

Программа, которая считывает 8 байт из созданного файла MyFile.dat, начиная с 7-го байта, относительно начала, и 10 байт от конца файла
Привет, вот задание собсно Напишите программу, которая считывает 8 байт из созданного ранее файла MyFile.dat, начиная с 7-го байта,...

Вывести подстроку, начиная с символа после последнего пробела и до конца строки (без string.h)
нужно вывести подстроку начиная с символа после последнего пробела и до конца строки. при этом нельзя использовать string.h


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru