Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Найти стороку, затем записать в другой файл ее и последующую (http://forum.oszone.net/showthread.php?t=277647)

NKata 13-02-2014 11:19 2308303

Найти стороку, затем записать в другой файл ее и последующую
 
Всем здравствуйте.
Общее описание проблемы:
Есть 2 текстовых файла размерами в 600Мб и 6Гб. В них содержатся строки, которые можно условно разделить на 4 группы, расположены они последовательно, что может даже упростит задачу. Нужно найти строки, начинающиеся на @SR и записать их и последующие за ними. Порядок записи необходим как в исходном файле. Возможно задача упрощается, так как эти строки заведомо имеют номер 1,2 5,6 9,10 и т.д. 2 файла хорошо бы склеить, но думаю это делается просто >> вместо > во втором файле.

Заранее извиняюсь, если не нашел подобную тему

NKata 13-02-2014 11:21 2308304

@echo off

::Выставляем нужное число строк для вывода после искомой:
set k=3

for /f %%i in ('find /c /v ""^<"test.txt"') do set l=%%i
(
for /l %%i in (1 1 %l%) do (
set string=
set /p string=
call set /p="%%string%%"<nul| findstr /xc:"строка поиска" /xc:"строка поиска"&& set m=%%i
for /l %%j in (1 1 %k%) do (
if defined m (
set /a n=m+%%j
call echo %%n%%| findstr /x %%i>nul&& if defined string (
call set /p="%%string%%"<nul
echo.
)
)
)
)
)<"test.txt">"new.txt"


Данный код взят с другого ресурса, Yury простите меня) но тут не работают регулярные выражения

Georgio 13-02-2014 12:15 2308346

Цитата:

Цитата NKata
Данный код взят с другого ресурса, Yury простите меня) »

Не за что.


Цитата:

Цитата NKata
но тут не работают регулярные выражения »

Попробуйте заменить:
Код:

call set /p="%%string%%"<nul| findstr /xc:"строка поиска" /xc:"строка поиска"&& set m=%%i
на:
Код:

call set /p="%%string%%"<nul| findstr /rc:"регулярное выражение"&& set m=%%i

NKata 13-02-2014 13:30 2308407

Спасибо огромное) работает!


Время: 13:26.

Время: 13:26.
© OSzone.net 2001-