powershell删除之前的所有内容:行开始后,每行

时间:2017-10-24 18:16:45

标签: powershell split

我有包含IP范围的文本文件。

在每一行上都有一个IP范围,如:64.76.139.160-64.76.139.167,以冒号开头,如您所见。

我想删除行开头后冒号之前的所有内容,并使用powershell在每行上执行相同的操作。

从这张图片中可以更容易地看出我的意思:https://imgur.com/a/r1Dbh

我尝试将文本文件存储到变量中,并且代码为:

$data.split(':')[1].split(' ') 

在文件启动后删除了所有内容。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

你需要这样的东西:

foreach($line in Get-Content .\file.txt) {
    if($line -match ":"){
        $line = $line.split(":")[1]
    }

    write-output $line
}

不确定您希望如何输出,但只需循环浏览文件的行并使用split()运算符。

如果你想保留冒号,你只需修改最后一行,如下所示:

":$line"

答案 1 :(得分:1)

为什么不使用正则表达式替换,如下所示:

$data -replace '^[^:]+:', ''