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

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

Ответить
Настройки темы
CMD/BAT - [решено] Выбор данных из txt по маске

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


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

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


Помогите выбрать данные из txt по следующей маске: xxx.xxx.xxx.xxx думаю несложно догадаться, что это ip. Есть txt в котором много ip и не нужного текста, руками выбирать не годится. После отбора хорошо бы сохранить ip в другой txt. Надеюсь, что это реально.
Заранее спасибо.

Отправлено: 22:38, 23-10-2010

 

Googler


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

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


hxygen, типичная задача для регулярных выражений..., в арсенале CMD есть только FindStr, который способен лишь вывести строки, содержащие IP... поэтому, не имея четкого представления о структуре текста браться за парсинг штатными средствами не имеет смысла

ИМХО проще всего реализовать через VBS:
Код: Выделить весь код
strFileIn ="1.txt"
strFileOut="2.txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set regEx = New RegExp
regEx.Pattern= "\d+\.\d+\.\d+\.\d+"
regEx.Global = True

Set oF = FSO.OpenTextFile(strFileIn,1)
sF = oF.ReadAll
oF.Close

Set Matches = regEx.Execute(sF)
Set oF = FSO.OpenTextFile(strFileOut,2)

For Each Match in Matches
  oF.WriteLine(Match.Value)
Next
...но уж коли заявлена категория CMD приведу вариант на AWK:
Код: Выделить весь код
awk -v RS="[^.0-9]+" "/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/" 1.txt >2.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:28, 24-10-2010 | #2



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

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


Аватара для Miko

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


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

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


Здравствуйте у меня примерно такая же проблема.

Есть текстовый файл,сколько строк в нем не известно. (Сегодня их 3 завтра 30).
Как мне через Bat файл вытащить нужное.. К примеру:

Start:400
Stop:500

Причем мне нужно вытащить только 400 и 500. (И снова проблема 400 и 500 могут меняться - Числа могут быть разные.).
Получается что мне нужно копировать все что находится после Start:
+ Нужно сохранить 400 в один текстовый файл а 500 в другой.

Кто может помочь?
За ранее спасибо.

-------
Кругом обман - уйду в туман.


Отправлено: 10:07, 24-10-2010 | #3


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


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

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


А не подскажете как VBS пользоваться? Скачал ScIte вставил код, жму скомплить-выдаёт не найден файл.

Всё, Awk прекрасно работает! Спасибо Вам большое!

Отправлено: 14:43, 24-10-2010 | #4


Googler


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

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


Цитата hxygen:
не подскажете как VBS пользоваться? »
ничего качать не надо - сохранить в любом текстовом редакторе с расширением VBS, запускать двойным кликом

Цитата Miko:
Как мне через Bat файл вытащить нужное.. К примеру:
Start:400
Stop:500»
Код: Выделить весь код
@(for /f "tokens=1* delims=: " %%a in ('findstr /birc:" *start:" "in.txt"') do @echo %%b
) >out1.txt

@(for /f "tokens=1* delims=: " %%a in ('findstr /birc:" *stop:" "in.txt"')  do @echo %%b
) >out2.txt
in.txt - входной файл
out1.txt, out2.txt - результат
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:52, 24-10-2010 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление каталогов по маске. mishgan2004 Скриптовые языки администрирования Windows 4 20-07-2017 14:00
Вопрос о маске spartak-21rus Сетевые технологии 7 01-02-2010 15:23
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35
Выбор данных из mysql с приоритетом ? m2001 Вебмастеру 8 10-10-2005 20:18
Выбор из базы данных victory Вебмастеру 9 24-07-2003 19:34




 
Переход