Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
ruslaw
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 65
1

Как разрезать один текстовый файл на несколько по шаблону?

27.09.2013, 21:31. Просмотров 2491. Ответов 6
Метки нет (Все метки)

Есть один текстовый файл (file.txt) в котором заключена информация на несколько html-файлов.
Примерно такой:
-------------------------------------------
<html>
<title>1</title>
<body>
1111111111
</body>
</html>
<html>
<title>2</title>
<body>
2222222222
</body>
</html>
<html>
<title>3</title>
<body>
3333333333
</body>
</html>
..........
<html>
<title>x</title>
<body>
xxxxxxxxxx
</body>
</html>
-------------------------------------------
как превратить его средствами bat-файлов (если можно) в несколько html-файлов: 1.htm, 2.htm, 3.htm .... x.htm
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 21:31
Ответы с готовыми решениями:

Как разрезать текстовый файл на колонки?
Имеется input.txt: 15a 26b 37c 48d Как получить output1.txt: 1 2 3

Как записывать несколько одномерных массивов, и несколько двумерных массивов в один единственный текстовый файл
Как записывать несколько одномерных массивов, и несколько двумерных массивов в один единственный...

ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и КАЖДЫЙ С ЧИСЕЛ вознести В КУБ.
ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и...

Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и каждое из чисел вознести в квадрат.
Пусть имеется текстовый файл, который содержит несколько целых чисел. Открыть этот текстовый файл и...

Как разделить текстовый файл на несколько частей
софт который делит текстовый файл на куски заданного размера) А именно на 1к , 5к , 10к!

6
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
27.09.2013, 22:08 2
Лучший ответ Сообщение было отмечено Joey как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
  Set src=file.htm
 
  Set C=0
  For /F "tokens=1 delims=[]" %%? in (';find /i /n "<html>" ^< "%src%"') do set /A C+=1& set ArrFrom.!C!=%%?
  Set C=0
  For /F "tokens=1 delims=[]" %%? in ('find /i /n "</html>" ^< "%src%"') do set /A C+=1& set ArrUntil.!C!=%%?
 
  For /L %%? in (1,1,%C%) do call :CutLines "!ArrFrom.%%?!" "!ArrUntil.%%?!" "%src%" "%%?.htm"
pause
Exit /B
 
:CutLines [From] [Until] [SourceFile] [DestinationFile]
  SetLocal
  For /L %%C in (%~1, 1, %~2) do set "txtmask=!txtmask!\[%%C\] "
  (for /f "tokens=1* delims=]" %%a in ('find /v /n "" ^<"%~3"^| findstr /B "%txtmask%" 2^>nul') do Echo=%%b)> "%~4"
EndLocal& Exit /B
Придет FraidZZ, напишет проще
1
ruslaw
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 65
27.09.2013, 22:18  [ТС] 3
Большущее спасибо, все работает!
0
diam
405 / 78 / 7
Регистрация: 06.12.2009
Сообщений: 296
23.07.2014, 15:32 4
Dragokas, прошу прощения за некропостинг.
Не могли бы вы мне помочь с таким файлом:

PASSP_SERIES,PASSP_NUMBER
4604,834158
4604,834161
6001,576947
6504,783399
5001,642269
6005,42393

я нашел в инете скрипт, который режет файл по строкам, переделал под себя, но в результате получается, что в файл попадает последняя строка из скрипта
Windows Batch file
1
2
3
4
5
6
7
8
setlocal enabledelayedexpansion
set q=0
set N=2
chcp 1251 > nul 
for /F "delims=   " %%i in ("ПутьКФайлу\_tst.csv") do (
set /a q+=1
if !q! GTR !N! set /a N+=2
@echo %%i >> ПутьКФайлу\_tst_!N!.csv
0
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
23.07.2014, 19:33 5
diam, здравствуйте!

А что с этим файлом то сделать нужно? Разрезать на файлы по строкам?

Windows Batch file
1
2
3
4
5
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
set n=0
for /F "UseBackQ delims=" %%a in ("ПутьКФайлу\_tst.csv") do set /a n+=1& echo %%a>> "ПутьКФайлу\_tst_!n!.csv"
pause
0
diam
405 / 78 / 7
Регистрация: 06.12.2009
Сообщений: 296
23.07.2014, 22:11 6
Dragokas, этот файл надо разрезать на определенное количество строк (штук по неск.тысяч)
0
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
24.07.2014, 00:15 7
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
Setlocal EnableDelayedExpansion EnableExtensions
:: Путь к исходному файлу
set "src=ПутьКФайлу\_tst.csv"
:: Путь к нарезке (только папка)
set "destFolder=Путь"
:: Размер кусков разрезанного файла (в строках)
set part=4
 
set L=0
set F=1
for /F "UseBackQ delims=" %%a in ("%src%") do (
  set /a L+=1
  echo %%a>> "%destFolder%\_tst_!F!.csv"
  if !L!==!Part! (
    set /a Part+=%Part%
    set /A F+=1
))
pause
Учтите, что восклицательные знаки из файла будут удалены.
1
24.07.2014, 00:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2014, 00:15

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

Как сохранить числа с Edit1 и Edit2 в один текстовый файл?
Подскажите как сохранить числа с Edit1 и Edit2 в один текстовый файл, так чтоб с Edit1 число...

Как сохранить результат выполнения кода в один текстовый файл
Здравствуйте форумчане. Есть большой txt файл. Надо обрезать в нем строки так, чтобы в каждой...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru