如何在Powershell中对CSV中的IP地址列表进行排序

时间:2017-09-01 02:49:07

标签: powershell csv sorting casting string-conversion

我目前在一个名为computer_info的CSV文件中有一个IP地址列表,我想将它们导入PowerShell并对它们进行排序。我在这里尝试了一些方法,没有运气。我知道如何导入CSV并识别我想要使用的列,但我无法弄清楚如何按实际IP地址顺序对字符串进行排序

我目前有

import-csv computer_info.csv| select ip_addr | sort ip_addr

感谢您的任何建议

3 个答案:

答案 0 :(得分:3)

这样做的一种推荐方法是利用[System.Version]

Import-CSV computer_info.csv| Select ip_addr | Sort {[System.Version]$_}

这不是版本的预期目的,但它有效。这会将IP地址转换为可以排序的版本对象。

  • Octet 1成为Version.Major。
  • Octet 2成为Version.Minor。
  • Octet 3成为Version.Build。
  • Octet 4成为Version.Revision。

Sorting IP addresses in PowerShell, part 1, IPv4

答案 1 :(得分:0)

其他方法:

Select . . .
from dbo.Amount_monthly am Left Join
     dbo.EXCHANGERATE er
     on am.Currencycode = er.fromcurrencycode and
        er.ValidToDateTime = (Select max(er2.ValidToDateTime) 
                              from dbo.EXCHANGERATE er2
                              where er2.EXCHANGERATETYPECODE = 'DAY'
                             ) and
        er.EXCHANGERATETYPECODE = 'DAY';

答案 2 :(得分:0)

Esperento57's pscustomobject方法很有用,因为它允许添加子网掩码作为Part5进行排序(例如,在10.10.10.128中用'。'替换'/'时可以说是第5个八位位组)。 / 25)。计算广告站点和服务中子网重叠的位置。上面的版本方法仅适用于4个部分。