Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
1

Объединение файлов с предварительным удалением строк

23.04.2018, 09:28. Показов 936. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача: имеется очень много текстовых файлов (бд экспериментальных данных). Нужно объединить их в один файл, но при этом удалить в каждом первые N строк и последние M строк...

Для наглядности структура файла:

-------------------------------
Заголовок файла (нужно удалить!)
...
...
...
...
и так n-строк
-------------------------------
Тело файла (нужно объединить)
-------------------------------
Оконцовка файла (нужно удалить!)
...
...
...
...
и так m-строк
-------------------------------

Можно ли это сделать в cmd при этом указывая только каталог где лежат эти файлы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2018, 09:28
Ответы с готовыми решениями:

Копирование нескольких файлов из локальной папки в две сетевые папки с последующим удалением исходных файлов
Есть практическая задача: нужно накидать батник, который будет в определённое время брать из одной...

Переименование файлов с удалением части имени
Добрый день! Понимаю, что задача простая, но сходу я не смог её осилить... :mda: Вот что в...

Разархивирование файлов по маске из архивов ARJ, RAR, ZIP с удалением из архива
Здравствуйте! Необходимо разархивировать файлы с определенной маской из архива в текущий каталог...

Архивирование по маске в другую директорию, с удалением материнских файлов после архивации
Коллеги, добрый день. Подскажите, как написать данный скрипт. Нужна написать bat, который будет...

4
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.04.2018, 10:54 2
Внимание! Сами файлы получат преобразование после запуска кода. Желательно поэкспериментировать над копиями для проверки. В моем примере запуск из папки с файлами txt, у файла "all.log" расширение не txt обязательно (не должно совпадать с расширением файлов или создавать этот файл по другому пути). Кол-во строк для удаления в начале и конце поставьте свое:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
:: Удалить N строк первых
set strn=2
:: Удалить M строк последних
set strk=3
rem:>all.log
 
for /f "delims=" %%a in ('dir /a-d/b "*.txt"') do call :dlstrf "%%a"
pause& exit
 
:dlstrf
 <"%~1">+ (more +%strn%|sort /+2147483647|more +%strk%|sort /+2147483647|findstr /vrc:"^$")& move+ "%~1"
 copy /b all.log+"%~1"
exit /b
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
23.04.2018, 12:30 3
С sed можно проще:
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
  setlocal enabledelayedexpansion
    if not exist "%~1" echo:Fuck off, specified folder does not exist.&goto:eof
    pushd "%~1"
      for /r . %%i in (*.txt) do sed -n ":x;1,9!{P;N;D};N;bx" "%%~nxi" | sed "1,8d">>res.txt
    popd
  endlocal
exit /b
Это правда при условии, что нужно удалять снизу и сверху по восемь строк, как в приведенном шаблоне.
0
21 / 24 / 1
Регистрация: 23.04.2012
Сообщений: 627
24.04.2018, 12:11  [ТС] 4
Так, а если файлы большие (по 4 Mb) как быть? Я так понимаю CMD такие файлы не переварит... Есть ли возможность построчной обработки с начала и с конца файла (по отдельности)?
0
Любознательный
5670 / 1685 / 314
Регистрация: 10.03.2016
Сообщений: 3,834
24.04.2018, 14:11 5
Цитата Сообщение от uzlprog Посмотреть сообщение
Так, а если файлы большие (по 4 Mb) как быть? Я так понимаю CMD такие файлы не переварит...
Зачем тогда это делать в cmd, если всё прекрасно знаете сами?
Powershell в помощь...
0
24.04.2018, 14:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2018, 14:11
Помогаю со студенческими работами здесь

Копирование файлов с переименованием в случае совпадения имён перемещаемых с удалением копируемых в начальной папке
Добрый день. это продолжение (улучшение скрипта полученного) в теме -...

Поиск в каталоге файлов с указанной датой создания с последующей архивацией или удалением найденных
Задание: Написать и отладить пакетный файл, который получает в качестве параметров дату, находит...

Загрузка файлов на FTP-сервер с удалением каждого файла с локального диска сразу по завершении его передачи
есть n-ое количество файлов в папке, как прописать код, чтобы за один цикл файлы загружались на ftp...

Объединение файлов с удалением исходников и загрузка в БД
Добрый день! После того, как я убил сервер под рутом, решил не искушать судьбу, и прошу у вас...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru