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

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

Ответить
Настройки темы
CMD/BAT - [решено] Копирование строк в отдельный файл по условию

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


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

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


Ув. форумчане подскажите пожалуйста, как можно скопировать из файла (С:\1.txt)- все строки которые начинаются на:
/1000
/2000
/3000
/4000
/5000
/6000
, в файл 2.txt ?

Отправлено: 23:20, 24-08-2010

 

Googler


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

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


Цитата Seryoga204:
в начале скопированных строк прописывалось значение "999 " »
Код: Выделить весь код
@echo off 
SetLocal EnableDelayedExpansion

set fi=1.txt
set fo=1.out

(for /f "tokens=1 delims=:" %%i in ('findstr /brnc:"/[1-6]000" /c:"Отдел" "%fi%"') do (
 set /a $j=%%i+1& for /f "tokens=1* delims=[]" %%a in (
'find /v /n ""^<"%fi%"^|findstr /bc:"[%%i]" /c:"[!$j!]"') do echo.999%%b
)) >"%fo%"
Код: Выделить весь код
@echo off 

set fi=2.txt
set fo=2.out

sed -n "/^\/[1-6]\|^Отдел/{s/^/999/p;n;s/^/999/p;}" "%fi%" >"%fo%"
Код: Выделить весь код
@echo off 

set fi=3.txt
set fo=3.out

awk "{p-=1};/^\/[1-6]|^Отдел/{p=2};p>0{print 999$0}" %fi% >%fo%
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:03, 26-09-2010 | #11



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

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


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


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

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


amel27,
Спасибо большое все работает отлично!
Еще появилась необходимость отбирать допустим строки которые начинаются не на слово "Отдел", а на "Отдел*", как экранировать символ "*", пробЫвал "Отдел^*" не проходит?

Отправлено: 20:42, 26-09-2010 | #12


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


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

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


Помогите пожалуйста нужен скрипт "Копирование строк в отдельный файл по условию"

Который должен в файле 1.txt находить слова из файла 2.txt и копировать всю строку в которой было найдено одно из слова из файла 2.txt и копировать подряд в файла 3.txt именно полными строками.
Пример: Имеется лог фаил в нем много хлама.

рараррра тиитилоп обращение тпопотаоптоа
обращение паолпоалпоатоавтм топтлвоатлмо

Скрипт должен посмотреть заданное слово из файла 2.txt например "обращение" и найти его в файле 1.txt и скопировать в файл 3.txt полностью строку

рараррра тиитилоп обращение тпопотаоптоа
обращение паолпоалпоатоавтм топтлвоатлмо

а не просто найденное слово "обращение"

Заранее спасибо, извините если не явно выразил суть проблемы.

Последний раз редактировалось Darkherald, 10-01-2011 в 17:10.


Отправлено: 09:19, 10-01-2011 | #13


Googler


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

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


Цитата Darkherald:
в файле 1.txt находить слова из файла 2.txt и копировать всю строку в которой было найдено одно из слов »
Код: Выделить весь код
findstr /ig:2.txt 1.txt >3.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:56, 11-01-2011 | #14


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


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

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


amel27 спасибо огромное то что нужно

Отправлено: 10:10, 11-01-2011 | #15


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


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

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


Подскажите как подправить код
Код: Выделить весь код
@echo off   SetLocal EnableDelayedExpansion    
set fi=1.txt  
set fo=1.out    
(for /f "tokens=1 delims=:" %%i in ('findstr /brnc:"000000" /c:"Отдел" "%fi%"') do 
(   set /a $j=%%i+1& for /f "tokens=1* delims=[]" %%a 
in (  'find /v /n ""^<"%fi%"^|findstr /bc:"[%%i]" /c:"[!$j!]"') 
do echo.999%%b  )) >"%fo%"
Чтобы по условию "000000" копировались строки которые начинаются на 000000, а по условию "Отдел" строка + 4 последующие за ней.

Отправлено: 21:22, 12-04-2011 | #16


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


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

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


Подскажите пожалуйста.Или по первому и второму условию копировались помимо строки удовлетворяющей поиску 4 последующие строки. Заранее спасибо.

Отправлено: 20:32, 13-04-2011 | #17


Googler


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

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


Цитата AlexVong:
по условию "000000" копировались строки которые начинаются на 000000, а по условию "Отдел" строка + 4 последующие за ней »
Код: Выделить весь код
set fi=1.txt  
set fo=1.out    

(for /f "delims=" %%a in ('type "%fi%"') do @(set "$a=%%a"
 SETLOCAL EnableDelayedExpansion
 if /i "!$a:~,6!"=="000000" set $p=1
 if /i "!$a:~,5!"=="Отдел"  set $p=5
 if !$p! gtr 0 set /a "$p-=1"& echo/!$a!
 for %%b in ("!$p!") do @ENDLOCAL& set $p=%%~b
))>"%fo%"
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:53, 14-04-2011 | #18


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


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

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


Код: Выделить весь код
FindStr /BRC:"Текст" /C:"Текст2" *.* >2.txt
Подскажите как заставить FindStr работать с файлами в кодировке 1251?

Отправлено: 18:39, 03-05-2011 | #19


Ветеран


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

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


Цитата AlexVong:
Подскажите как заставить FindStr работать с файлами в кодировке 1251? »
Выставить нужную кодировку:
Код: Выделить весь код
chcp 1251
FindStr /BRC:"Текст" /C:"Текст2" *.* >2.txt

Отправлено: 19:55, 03-05-2011 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск строк с указанным словом и копирование их в отдельный файл Maartimus Скриптовые языки администрирования Windows 2 13-07-2010 20:25
Общее - [решено] Экспорт издания в отдельный WIM-файл САШOК Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 7 03-06-2009 01:41
[решено] Работа с html-кодом страницы, поиск и копирование нужных строк Sestrichka AutoIt 14 02-04-2009 16:51
Вывод размера папки в отдельный файл скриптом Whiteee Microsoft Windows NT/2000/2003 1 16-07-2008 14:06
добавления строк в файл e9990638 Автоматическая установка приложений 5 18-01-2007 18:35




 
Переход