Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обработка *.txt

Ответить
Настройки темы
CMD/BAT - [решено] обработка *.txt

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Собственно есть файл in.txt в котором надо провести операции над строчками.
Всего 37353 строчек из которых надо получить 4567. Шаг цикла от 8 до 9 строчек.
исходник:
Цитата:
*
часть
первая
*
0" 0"13260"
*
5:17
*
*
глава
вторая
*
*
4" 4"3538"
*
5:31
*
все * - пустые строчки.
В новом документе надо получить:
Цитата:
часть - первая
глава - вторая

Отправлено: 15:01, 28-03-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Михаил11, опишите явно принципы, по которым следует производить отбор нужных строк среди прочих.

Отправлено: 15:06, 28-03-2011 | #2



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

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


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Думаю проще произвести в 2 этапа.
1) Убрать все пустые строчки получив
Цитата:
часть
первая
0" 0"13260"
5:17
глава
вторая
4" 4"3538"
5:31
sed '/^$/d' 1.txt удалить пустые строки из файла 1.txt

2) переписать в новый документ к первой строчке добавляя " - " дописывая 2 строчку и пропуская последующие две строчки и повторять в цикле со строчками i*4
Цитата:
часть - первая
глава - вторая

Последний раз редактировалось Михаил11, 28-03-2011 в 15:46.


Отправлено: 15:13, 28-03-2011 | #3


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1272
Благодарности: 1029

Профиль | Отправить PM | Цитировать


Михаил11, если я правильно понял задание:
Код: Выделить весь код
@Echo Off
SetLocal
Set Source=C:\Source\in.txt
Set Output=C:\Output\in_new.txt
Set Num=1

Del /F /Q "%Output%" 2>nul
For /F "Tokens=1* Delims=:" %%A In ('Type "%Source%"^|FindStr .^|FindStr /N .') Do Call :Func "%%A" "%%B"
EndLocal
Exit /B 0
:Func
	If "%~1"=="%Num%" If Not Defined SubStr Set SubStr=%~2
	If Not "%~1"=="%Num%" If Defined SubStr (Echo %SubStr% - %~2 >>"%Output%"&Set SubStr=&Set /A Num=%Num%+4)

Отправлено: 16:28, 28-03-2011 | #4


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


El Sanchez,
Да, почти работает, но съедает закрывающие скобки в строках и пишет что не объявлен оператор. На третьей скобке вылетает =(
P.S. Все равно спасибо, обошел вылеты заменой скобок. Время обработки заняло около 1 минуты =^_^=

Отправлено: 18:07, 28-03-2011 | #5


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Михаил11, если я правильно понял задачу, то попробуйте так:
Код: Выделить весь код
@Echo Off
Setlocal EnableDelayedExpansion
:: Обрабатываемый файл
Set file=e:\Temp\in.txt
:: Новый файл
Set newfile=e:\Temp\new file.txt

(For /F "usebackq tokens=* delims=" %%i In ("%file%") Do (
	Set /A cnt=cnt%%4+1
	If !cnt!==1 Set line=%%i
	If !cnt!==2 Echo !line! - %%i
))>"%newfile%"

Отправлено: 10:00, 29-03-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] обработка *.txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - [решено] Обработка массивов Матвик Программирование и базы данных 12 24-02-2011 16:25
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
Обработка формы ][alter Вебмастеру 10 18-12-2007 00:18
Обработка видео Antonij Видео и аудио: обработка и кодирование 14 29-03-2007 21:44




 
Переход