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.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オプション、正規表現、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 に答える