![]() |
разбить по строкам txt
есть list.txt
как разбить его на list01.txt, list02.txt ... по 50 строк? т.е. если есть list.txt в котором 400 строк - то разбить его на 8 txt-файлов по 50 строк |
|
куда в тотал командере копировать этот текст?
|
Код:
@Echo Off |
gora благодарю! :yes:
|
до кучи еще вариант:
Код:
@echo off |
вариант на AWK:
Код:
@echo off |
Цитата:
Создать кнопку с парам. %L 50 или запускать split.vbs <список_файлов_по_одному_в_строке> 50 Для скрипта от Volniy Заменить Const n=50 ' число строк в каждом "куске" Запускать split.vbs list.txt Цитата:
|
не сочтите на пристрастие к некрофильству))
но вариант горы (да и других) разбивает с пустой строчкой. а именно задаю 2 тыс строк, он мне разбивает на 2000 строк текста и одну пустую. как с этим бороться? |
Цитата:
Выложите Ваш код, Ваш исходный файл и результирующие файлы в архиве. |
добрый день, подскажите как исправить проблему в этом варианте
Код:
@echo off Дак вот в выходных файлах этот знак удаляется, как избежать этого? |
Цитата:
|
Код:
@echo off |
Georgio, сейчас окажется, что некоторые строки начинаются и с «:» :lol:.
|
спасибо, работает!
|
Цитата:
Цитата:
Код:
@echo off |
Цитата:
Уже не страшно. Пусть начинаются хоть с «:::::» при использовании «findstr», хоть с «[[[[[» или «][][][» при использовании «find»: 1) Код:
@echo off ; 2) Код:
@echo off . |
Ага ;). Вот так посмотришь на код — и
|
Спасибо, все работает. А можно еще такой же вариантик, только с пустой строкой в конце (как раньше), но с переменной "format".
И еще вопросик, а если к примеру, надо 3 файла так обработать (list1, list2, list3), это можно сделать в одном bat файле или надо для каждого имени такой bat создавать? |
Цитата:
Всё "в одном флаконе": Код:
@echo off . |
Цитата:
|
Спасибо большое, еще и со звукок :clapping:
|
а такой код нельзя заставить работать если txt сохранен в формате unicode text file ?
просто программа по умолчанию сохраняет в формате "unicode text file", приходится каждый раз менять тип на "text file" или как - тоизбавится от этого сохранения в unicode text file, чтобы по умолчанию, сразу предлагалось в text file)) |
Alexander_88, нижеприведённое "достижение науки" с "UTF-8" справляется. Но даже если этот код не подойдёт для обработки Ваших "юникодных" файлов, то используйте его для обработки других файлов, т. к. результаты его работы корректнее результатов работы предыдущего кода.
Код:
@echo off |
Georgio понял, спасибо вам за помощь
|
Georgio, а имена выводимых файлов не должны меняться? почему то они у меня не много не такие получаются.
если файл называется Alexander, получаются файлы ALEXAN~101, ALEXAN~102, ALEXAN~103 ................ чисел в нумерации установлено 2 |
Alexander_88, попробуйте:
Код:
@echo off . |
Работает, спасибо :yahoo:
|
Всем привет. Есть такая проблема.Необходимо разбить файл на 3 части. Причем кол-во строк в каждой части разное.
Разбивать так: 1 файл от начала и до строки которая задается переменной; 2ой файл между 2мя переменными(так как переменные получаются по найденым словам в тексте и их номера строк),3й файл - от второй переменной и до конца файла. Желательно через CMD сия мероприятие производить... знаю что найти сномер строки вот так вот Цитата:
|
Код:
@echo off |
Georgio, спасибо огромное )))
|
Georgio, а скажите есть в бат какая нибудь команда типа for из c# ?
|
blackeangel, если имеется ввиду инкрементация:
Код:
for /l %%i in (0,1,9) do echo %%i |
Georgio, ваш код по разбитию не работает правильно...он выдает 3 файла:
1- как оригинал,2 и 3 пустые. Я привел его к такому вот виду Код:
@echo off |
Foreigner, нет,что то типа
Код:
::находим строки начала и конца |
Цитата:
|
Цитата:
Код:
for /l %%a in (%b%,1,%c%) do echo %%a>>1.txt Давайте начнём с простого и понятного: упакуйте образец исходного файла в архив, выложите архив на RGhost. Опишите потребную задачу полностью — без учёта: Цитата:
|
Iska, задача проста-заменить абзац текста из одного файла в другом по 2м меткам которые уже писались парой постов выше в коде.То есть они этих файлах присутствуют.Файл я прикладывал там же где и код(большой который).Реализовать это на батнике нереально, поэтому решил обойти это в 4 шага.
1.Из первого файла диапазон между метками отправить в новый файл 2.Второй файл разбить на 3 части ( по условию что писалось на предыдущей стр) 3. Заменить одну часть на файл из п.1 4. Соединить всё в новый файл который нужен Самое сложное оказались первые 2 пункта.. |
Цитата:
Код:
sed -n "/#Camera/,/#\/dev\/RT_Monitor/ p" init.rc | sed -r "/^.+#.+$/ d" > другой_файл |
Foreigner, sed это программа, так понимаю, для поиска и замены текста?
|
blackeangel, у Вас там в файле Unix'овские концы строк. И хотелось бы увидеть образцы Ваших файлов, из которых Вы будете делать замену (разумеется, так же — в архиве).
Вот примерная болванка на WSH на пробу: Скрытый текст
Код:
Option Explicit Сохраните приведённый код в файл с расширением .vbs, замените выделенное на пути к Вашим реальным исходному и заменяющему файлам. Результирующий файл получит имя исходного плюс «.txt». Посмотрите, что получается. Цитата:
|
blackeangel, надо было предупредить, что у Вас исходный файл в формате UNIX.
Код: Код:
@echo off Полученные файлы будут в формате Windows. |
Iska, спасибо большое конечно за vbs, но на моей машине эти скрипты не запустятся,так же как и js
|
Цитата:
|
Iska, наверное, поэтому предпочтение exe и bat
|
Georgio, спасибо, скрипт отработал великолепно
|
Foreigner, спасибо за вывод из файла нужных строк
|
Сделал сегодня так
Код:
echo #blackeangel>>init.rc Файлы прилагаются,оригинал и разбитые |
Цитата:
|
Здравствуйте! Облазил весь интернет, решения не нашел, как модифицировать примеры в этом топике под себя понять не могу, поэтому прошу вашей помощи, надеюсь, не откажете.
Ситуация следующая: имеется file.txt, который нужно разбить на равное количество строк (с этим я справился), но сохранить результаты в разные папки (их список построчно лежит в list.txt) с одним и тем же (finish.txt) именем. Папок физически на диске нет, т.е. их надо сначала создать. Названия папок могут содержать точки. Подскажите, пожалуйста, как это можно реализовать. Большое вам спасибо. |
Цитата:
Цитата:
Цитата:
Цитата:
|
Вложений: 1
Iska, спасибо за ваш ответ.
Цитата:
Цитата:
Код:
setlocal enabledelayedexpansion По поводу file.txt и list.txt - их содержимое может меняться, но пример я приложу. Еще, возможно, это важный момент - исходный файл сохранен в UTF-8 и получившиеся файлы тоже должны быть в этой кодировке. И еще не уточнил, что в строках может встречаться символ "-", возможно, это важно. |
Цитата:
|
Вложений: 1
Iska, вы помогли мне разобраться с интересной особенностью Notepad++ - в случае, если точка не стоит рядом с любой из строк "Кодировать в ...", то при попытке перекодировки ничего не происходит. В этом случае надо наживать "Преобразовать в..." и после этого уже можно кодировать. Не знал такого. Спасибо за ваше замечание.
Прикладываю исправленное. |
Разбил файл вот так,может кому нибудь пригодится
if exist "Port\boot\rmdisk\*.tmp" del /q Port\boot\rmdisk\*.tmp >nul ::1 файл for /f "delims=[] tokens=1*" %%a in ('find /i /n "# Add by MTK" ^< "Port\boot\rmdisk\init.rc"') do ( bin\sed.exe -n "1,%%a p" Port\boot\rmdisk\init.rc >Port\boot\rmdisk\init_1.tmp ) ::2 файл bin\sed.exe -n "/# Add by MTK/,/# End of adding by MTK drivers/ p" Stok\boot\rmdisk\init.rc >Port\boot\rmdisk\init_2.tmp bin\sed.exe -i "/# Add by MTK/ d" Port\boot\rmdisk\init_2.tmp bin\sed.exe -i "/# End of adding by MTK drivers/d" Port\boot\rmdisk\init_2.tmp ::3 файл bin\sed.exe -n "/# End of adding by MTK drivers/, $p" Port\boot\rmdisk\init.rc > Port\boot\rmdisk\init_3.tmp Хотя может есть предложения как сделать проще? |
Время: 12:22. |
Время: 12:22.
© OSzone.net 2001-