1

我有一个文本文件,我需要逐行浏览并删除引号中的任何文本且与以下值之一不匹配:

  • 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” “10.0.0.1”
IPADDRESS “192.168.10.1” “192.168.11.1” “127.0.0.1” “192.168.8.12.1” “192.168.8.12.1” 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 选项、正则表达式、使用 trim 选项、使用过滤器、使用 -match 选项,取得了不同程度的成功,但我一直在碰壁......

4

1 回答 1

2

您可以拆分线,使用正则表达式模式删除不需要的部分并重新组装线:

Get-Content ip.txt | Where-Object {$_} | Foreach-Object {
   $line=$_.Split()
   $line[0] + ' ' + ($line -match '"192\.168\.1[0-3]\.1"') -join ' '
}
于 2012-11-26T18:48:00.877 回答