Bonjour,
Étant un bleu en powershell je solicite votre aide.
J'ai un fichier que je doit lire ligne par ligne et vérifier si un morceau de cette ligne (après modification) existe dans un autre fichier.
Si la ligne n'existe pas j'enregistre la ligne d'origine du fichier 1 dans un fichier resultat.txt.
Exemple 1:
exemple de données du fichier1:
F:\users\tom\samba\lina\lina\chapI.log
Ce qui doit être recherché dans le fichier 2:
abdallah/samba/lina/lina/chapI.log
Donc si il faut que je cherche la chaine "tom\samba\lina\lina\chapI.log" en remplaçant tous les \ par des /.
Exemple 2:
Si il n'y a pas \samba\ dans une ligne du fichier 1 on doit quand même chercher la chaine avec le \samba\ après le prénom dans le fichier 2
Fichier 1 F:\users\tim\data\perso\lina carine 014.JPG
fichier 2: tim/samba/data/perso/lina carine 014.JPG
J'ai donc cherché a lire le fichier 1 et a stocker sont contenu dans une variable tout en remplaçant les \ par des /
$contenu_fic1 = Get-Content d:\export\export_fic1.txt | foreach { $_ -replace '[\]',"" }
Mais je n'arrive pas àlui faire comprendre que le \ et / ne font partie de la commande.
Ensuite je n'arrive pas à supprimer le "F:\users\" devant chaque ligne du fichier 1 afin de pouvoir rechercher directement la chaine dans le fichier (après avoir inversé les slash).
J'ai essayé avec la fonction "split", mais je n’arrive pas lui dire de garder tout ce qui est après le 2eme "\" jusqu'à la fin de la ligne. En plus je ne suis pas sur que ce soit la manière la plus simple pour reconstituer la ligne complète...
Get-Content d:\export\export_fic1.txt | foreach { $_.split("\")[3] }
Merci pour votre aide!
Partager