我有一个文本文件,我需要逐行浏览并删除任何带引号的文本,并且不匹配以下值之一:
我的初始文件看起来像这样:
IPADDRESS“192.168.10.1”“192.168.11.1”“192.168.12.1”“192.168.13.1”“10.0.0.1”
IPADDRESS“192.168.10.1”“192.168.11.1”“127.0.0.1”“192.168.12.1”“192.168.13.1”
我希望我的输出类似于以下内容:
IPADDRESS“192.168.10.1”“192.168.11.1”“192.168.12.1”“192.168.13.1”
IPADDRESS“192.168.10.1”“192.168.11.1”“192.168.12.1”“192.168.13.1”
我已尝试使用-replace选项,正则表达式,使用修剪选项,使用过滤器,使用-match选项,以获得不同程度的成功,但我不断碰壁砖......
答案 0 :(得分:2)
您可以拆分线条,使用正则表达式删除不需要的部分并组装回来:
Get-Content ip.txt | Where-Object {$_} | Foreach-Object {
$line=$_.Split()
$line[0] + ' ' + ($line -match '"192\.168\.1[0-3]\.1"') -join ' '
}