Question
Recherche Texte et le remplacer depuis une liste csv
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 2 ans 6 mois #31388
par africanism78
Recherche Texte et le remplacer depuis une liste csv a été créé par africanism78
Bonjour a tous,
je débute en powershell
j'essais de trouve comment liez une liste de mot (csv) a chercher dans plusieurs fichier et les remplacer par ceux dans cette meme Liste.
en gros j'essais de le faire chercher dans tous les fichier le texte OldNameServer1 et de le remplacer par NewNameServer1
je pense que c'est faisable mais je ne sais pas comment joindre le Foreach a mon Select-String -replace.
j'avoue que je suis perdu.
Mon csv
Merci a vous si vous pouvez m'aiguillé
je débute en powershell
j'essais de trouve comment liez une liste de mot (csv) a chercher dans plusieurs fichier et les remplacer par ceux dans cette meme Liste.
en gros j'essais de le faire chercher dans tous les fichier le texte OldNameServer1 et de le remplacer par NewNameServer1
je pense que c'est faisable mais je ne sais pas comment joindre le Foreach a mon Select-String -replace.
j'avoue que je suis perdu.
Mon csv
Old,New
OldNameServer1,NewNameServer1
OldNameServer2,NewNameServer2
Merci a vous si vous pouvez m'aiguillé
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 2 ans 6 mois #31390
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Recherche Texte et le remplacer depuis une liste csv
Hello Africanism du 78 !
Chaque chose en son temps. Commençons déjà par remplacer un mot par un autre dans un fichier.
Pour se faire, l'opérateur -Replace est parfait. Tu n'as pas besoin de Select-String.
Petit exemple :
Est-ce que cela a du sens pour toi ?
Arnaud
Chaque chose en son temps. Commençons déjà par remplacer un mot par un autre dans un fichier.
Pour se faire, l'opérateur -Replace est parfait. Tu n'as pas besoin de Select-String.
Petit exemple :
# Chargement du contenu d'un fichier texte dans une variable.
# $file sera donc un tableau de chaines de caractères
$file = Get-Content C:\temp\myFile.txt
# Remplacement d'un mot par un autre dans un tableau de chaine de caractères
$file -Replace 'chaine de recherche', 'chaine de remplacement'
Est-ce que cela a du sens pour toi ?
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 2 ans 6 mois #31391
par africanism78
Réponse de africanism78 sur le sujet Recherche Texte et le remplacer depuis une liste csv
salut, et merci pour ta réponse
oui j'avais déjà vue, le soucis c'est que je doit modifier plusieurs fichiers sans les connaitre , je sais ou ils ce trouve mais je me voit mal écrire le nom de chaque fichier et dire ce que je doit remplacer.
oui j'avais déjà vue, le soucis c'est que je doit modifier plusieurs fichiers sans les connaitre , je sais ou ils ce trouve mais je me voit mal écrire le nom de chaque fichier et dire ce que je doit remplacer.
Connexion ou Créer un compte pour participer à la conversation.
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 2 ans 6 mois - il y a 2 ans 6 mois #31392
par africanism78
Réponse de africanism78 sur le sujet Recherche Texte et le remplacer depuis une liste csv
avec cette commande je voit bien les fichier qui contienne mes mots cle
Select-String -Path E:\TEST\* -pattern "test1"
Dernière édition: il y a 2 ans 6 mois par africanism78.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 37
il y a 2 ans 6 mois #31394
par ericlm128
Réponse de ericlm128 sur le sujet Recherche Texte et le remplacer depuis une liste csv
Je ferait comme ceci en imaginant que ton fichier csv se trouve dans le dossier "C:\test"
PS : Encodage des fichiers à surveiller (txt et csv), si il y a de la divergence ca compliquera le code
$files = Get-ChildItem -Path "C:\test\*.txt"
$csv = Import-Csv -LiteralPath "C:\test\test.csv" -Encoding UTF8 -Delimiter ","
foreach($file in $files)
{
$newcontent = $content = $file | Get-Content -Raw
foreach($item in $csv)
{
$newcontent = $newcontent -replace $item.Old, $item.New
}
if($content -ne $newcontent)
{
Set-Content -LiteralPath $file.FullName -Value $newcontent
}
}
PS : Encodage des fichiers à surveiller (txt et csv), si il y a de la divergence ca compliquera le code
Les utilisateur(s) suivant ont remercié: africanism78
Connexion ou Créer un compte pour participer à la conversation.
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 2 ans 6 mois - il y a 2 ans 6 mois #31396
par africanism78
Réponse de africanism78 sur le sujet Recherche Texte et le remplacer depuis une liste csv
Merci
j'ai adapté pour qui recherche dans tous les fichiers.
j'ai adapté pour qui recherche dans tous les fichiers.
$files = Get-ChildItem -Path "E:\TEST\*.*" -Recurse
$csv = Import-Csv -LiteralPath "E:\data.csv" -Encoding UTF8 -Delimiter ","
foreach($file in $files)
{
$newcontent = $content = $file | Get-Content -Raw
foreach($item in $csv)
{
$newcontent = $newcontent -replace $item.Old, $item.New
}
if($content -ne $newcontent)
{
Set-Content -LiteralPath $file.FullName -Value $newcontent
}
}
Dernière édition: il y a 2 ans 6 mois par africanism78.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.079 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Recherche Texte et le remplacer depuis une liste csv