Dans PowerShell, je lis dans un fichier texte. Je fais ensuite un Foreach-Object sur le fichier texte et je ne suis intéressé que par les lignes qui ne contiennent PAS de chaînes qui sont dans $arrayOfStringsNotInterestedIn
.
Quelle est la syntaxe pour cela?
Get-Content $filename | Foreach-Object {$_}
Si $ arrayofStringsNotInterestedIn est un [tableau], vous devez utiliser -notcontains:
Get-Content $FileName | foreach-object { `
if ($arrayofStringsNotInterestedIn -notcontains $_) { $) }
ou mieux (OMI)
Get-Content $FileName | where { $arrayofStringsNotInterestedIn -notcontains $_}
Vous pouvez utiliser l'opérateur -notmatch pour obtenir les lignes qui n'ont pas les caractères qui vous intéressent.
Get-Content $FileName | foreach-object {
if ($_ -notmatch $arrayofStringsNotInterestedIn) { $) }
Pour exclure les lignes qui contiennent l'une des chaînes de $ arrayOfStringsNotInterestedIn, vous devez utiliser:
(Get-Content $FileName) -notmatch [String]::Join('|',$arrayofStringsNotInterestedIn)
Le code proposé par Chris ne fonctionne que si $ arrayofStringsNotInterestedIn contient les lignes complètes que vous souhaitez exclure.