Показать полную графическую версию : [решено] Выбор данных из txt по маске
Помогите выбрать данные из txt по следующей маске: xxx.xxx.xxx.xxx думаю несложно догадаться, что это ip. Есть txt в котором много ip и не нужного текста, руками выбирать не годится. После отбора хорошо бы сохранить ip в другой txt. Надеюсь, что это реально.
Заранее спасибо.
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 (http://gnuwin32.sourceforge.net/packages/gawk.htm):
awk -v RS="[^.0-9]+" "/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/" 1.txt >2.txt
Здравствуйте у меня примерно такая же проблема.
Есть текстовый файл,сколько строк в нем не известно. (Сегодня их 3 завтра 30).
Как мне через Bat файл вытащить нужное.. К примеру:
Start:400
Stop:500
Причем мне нужно вытащить только 400 и 500. (И снова проблема 400 и 500 могут меняться - Числа могут быть разные.).
Получается что мне нужно копировать все что находится после Start:
+ Нужно сохранить 400 в один текстовый файл а 500 в другой.
Кто может помочь?
За ранее спасибо.
А не подскажете как VBS пользоваться? Скачал ScIte вставил код, жму скомплить-выдаёт не найден файл.
Всё, Awk прекрасно работает! Спасибо Вам большое!
не подскажете как VBS пользоваться? »ничего качать не надо - сохранить в любом текстовом редакторе с расширением VBS, запускать двойным кликом ;)
Как мне через 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.txtin.txt - входной файл
out1.txt, out2.txt - результат
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.