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

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

God-of-Chaos 05-11-2017 16:04 2775499

поиск по части IP адреса в CSV файле
 
Вложений: 1
  • list.zip (468 bytes, скачиваний: 18)
есть первый список - список 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 адресов и описания с разделителем ";"
необходимо взять первые три октета из первого списка и сравнить со вторым списком, и если есть совпадение записать данные в файл в виде
Цитата:

первые три октета из первого списка - строчка из второго файла
если есть несколько совпадений, то должно быть:
Цитата:

первые три октета из первого списка - строчка из второго файла
- строчка из второго файла
- строчка из второго файла
примеры файлов во вложении

Kazun 06-11-2017 00:23 2775643

Код:

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+$" »

А можно чуть подробнее, что в данном случае выполняется?

Iska 06-11-2017 10:45 2775692

Цитата:

Цитата God-of-Chaos
А можно чуть подробнее, что в данном случае выполняется? »

А просто взять и посмотреть, не? Быстрее ж будет.

Из строки с IP-адресом удаляется последняя часть тетрады (вместе с точкой). Для поиска используется шаблон регулярного выражения.


Время: 22:54.

Время: 22:54.
© OSzone.net 2001-