我有包含IP范围的文本文件。
在每一行上都有一个IP范围,如:64.76.139.160-64.76.139.167
,以冒号开头,如您所见。
我想删除行开头后冒号之前的所有内容,并使用powershell在每行上执行相同的操作。
从这张图片中可以更容易地看出我的意思:https://imgur.com/a/r1Dbh
我尝试将文本文件存储到变量中,并且代码为:
$data.split(':')[1].split(' ')
在文件启动后删除了所有内容。
感谢您的帮助。
答案 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 '^[^:]+:', ''