次のような.CSVファイル(file1)があります
Initials,Size excl. Backup/Pst,Number of warnings
USER1,100,1
USER10,1000,1
USER12,1100,1
USER13,1200,1
次のような別の .CSV ファイル (file2) があります。
Initials,Size excl. Backup/Pst
USER1,100
USER4,400
USER10,1000
USER11,1100
ユーザー名がfile2にないfile1から行を削除しようとしています。
したがって、私の出力は次のようになります:(USER12とUSER13はfile2にないため、ファイルから削除されます)
Initials,Size excl. Backup/Pst,Number of warnings
USER1,100,1
USER10,1000,1
これが私が持っているものです
$ArrayDB1 = $file1 | Import-Csv | Select-Object Initials
$ArrayUSERS = $file2 | Import-Csv | Select-Object Initials
$ArrayDiff = Compare-Object ($ArrayDB1) ($ArrayUSERS1) -Property Initials |
Where-Object { $_.SideIndicator -eq '<=' } |
Select-Object Initials
これは私に(で$ArrayDiff
)与えます:
Initials
--------
USER12
USER13
ここまでは順調ですね。しかし、以下を使用してfile1から削除しようとすると
Select-String $file1 -Pattern $ArrayDiff -NotMatch |
select -Expand line |
Out-File "file3.log"
file3 は、file1 の内容を教えてくれます。何も削除されません:
Initials,Size excl. Backup/Pst,Number of warnings
USER1,100,1
USER10,1000,1
USER12,1100,1
USER13,1200,1