Powershell 排序对象,csv

Powershell 排序对象,csv

我有两个 *.csv 文件。第一个包含以下内容

IP, MAC, Name, Comment
10.10.122.1, 66-55-44-33-22-11, testuser1, this is testuser 1
10.10.122.100, 66-55-44-33-22-12, testuser2, this is testuser 2
10.10.122.2, 66-55-44-33-22-13, testuser3, this is testuser 3
10.10.122.4, 66-55-44-33-22-14, testuser4, this is testuser 4
10.10.122.203, 66-55-44-33-22-15, testuser5, this is testuser 5

第二个文件包含 IP 的排序列表。这有点棘手,因为您必须添加前导零来对 IP 进行排序,然后需要删除前导零。因此文件如下所示:

10.10.122.1
10.10.122.2
10.10.122.4
10.10.122.100
10.10.122.203

我如何获取其他属性,例如第二个 csv 文件中 IP 的合适 MACS?

我尝试使用 where-object,但不幸的是我不知道如何比较 IP,然后链接其他属性以获得正确的 IP。

答案1

只需对原始 csv 进行排序:

$data = Import-Csv first.csv
$data = $data | Sort-Object {"{0:000}.{1:000}.{2:000}.{3:000}" -f @([int[]]$_.IP.split("."))}

现在,由于我们在排序过程中将 IP 的每个八位字节视为零填充的字符串,因此它们将按正确的顺序列出。

相关内容