 |
|
God-of-Chaos |
05-11-2017 16:04 2775499 |
поиск по части IP адреса в CSV файле
Вложений: 1
есть первый список - список IP адресов, из этих IP адресов нам необходимы только первые три октета, получаем данный список состоящий только из первых трех октетов следующим образом:
Цитата:
$ALL_IP_ADDRESS = @(Get-Content -Path "C:\Users\Admin\Desktop\list1.txt")
$result_mas=@() #создаем пустой массив
foreach ($IP in $ALL_IP_ADDRESS)
{
$result = $IP.Remove($IP.LastIndexOf('.'))
$result_mas += $result
}
$result_mas | Select-Object -Unique | Set-Content -PassThru "C:\Users\Admin\Desktop\list_octet1.txt"
|
есть второй список - файл csv состоящий из IP адресов и описания с разделителем ";"
необходимо взять первые три октета из первого списка и сравнить со вторым списком, и если есть совпадение записать данные в файл в виде
Цитата:
первые три октета из первого списка - строчка из второго файла
|
если есть несколько совпадений, то должно быть:
Цитата:
первые три октета из первого списка - строчка из второго файла
- строчка из второго файла
- строчка из второго файла
|
примеры файлов во вложении
|
Код:
gc list1.txt | % {$f = gc list2.csv}{
$ip = $_ -replace "\.\d+$"
if(($r = $f -match $ip)) {$ip+" - " +($r -join "`n- ")}
}
|
God-of-Chaos |
06-11-2017 09:50 2775684 |
Цитата:
Цитата Kazun
$ip = $_ -replace "\.\d+$" »
|
А можно чуть подробнее, что в данном случае выполняется?
|
Цитата:
Цитата God-of-Chaos
А можно чуть подробнее, что в данном случае выполняется? »
|
А просто взять и посмотреть, не? Быстрее ж будет.
Из строки с IP-адресом удаляется последняя часть тетрады (вместе с точкой). Для поиска используется шаблон регулярного выражения.
|
Время: 22:54.
© OSzone.net 2001-