Problème de lecture pour comparer les cellules d'un fichier csv (tableau excel)
J'ai un problème avec mon script, lorsque je le run il n'affiche pas toutes les cellules qui match lorsque je met un pipeline alors que sans celui-ci l'affichage est différent. Le but du script est comparer 4 colonnes et d'afficher seulement les cellules qui ne sont pas dans la colonne de référence donc je dois faire cette opération 4 fois mais en plus de cela je n'arrive à afficher les noms de colonnes lorsque je souhaite run la suite du script et des écarts ce font et je parviens pas à les retirer.
voici le code pour afficher les 4 colonnes sans pipeline mais avec des trous
Code:
1 2 3 4 5 6 7 8 9 10 11
| $csv = Import-Csv .\test1.csv -Delimiter ';'
$ref = @($csv.Column1)
foreach ($row in $csv) {
foreach ($col in 'Column2', 'Column3', 'Column4') {
if ($ref -contains $row.$col) { $row.$col = '' }
}
}
$csv | Select-Object Column1,Column2,Column3,Column4 |
le fichier
Column1 Column2 Column3 Column4
infra-1 infra-852 infra-2 infra-99
infra-98 infra-85 infra-44 infra-23
infra-5 infra-8 infra-1 infra-10
infra-2 infra-55 infra-8 infra-70
infra-62 infra-5 infra-852 infra-5
le résultat sans pipeline
Column1 Column2 Column3 Column4
------- ------- ------- -------
infra-1 infra-852 infra-99
infra-98 infra-85 infra-44 infra-23
infra-5 infra-8 infra-10
infra-2 infra-55 infra-8 infra-70
infra-62 infra-852
resultat:
En ajoutant : | where Column3 -ne '' par exemple
Column1 Column2 Column3 Column4
------- ------- ------- -------
infra-98 infra-85 infra-44 infra-23
infra-2 infra-55 infra-8 infra-70
infra-62 infra-852
Désolé mais je n'arrive pas afficher les tableaux correctement et je ne peux pas mettre de captures