Flash info

"Si vous vivez chaque jour comme si c'était le dernier, un jour vous aurez probablement raison."

Steve Jobs (1955-2011)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
Tdmpowershell
Utilisateur

PowerShelleur Débutant
Messages: 4
graphgraph
Karma: 0  
[RESOLU]Modif caractère dans fichier et solution - 6/09/19 15:24 Modifier et enregistrer caractère sur ligne spécifique dans fichier TXT.

Bonjour,

Je viens vers vous pour trouver une solution.
Comme vous le verrez plus bas dans le message je fais partie des novices en powershell.

Je cherche à modifier uniquement les lignes qui commencent par "4=" le caractère " 5" par " 3" dans un fichier TXT et d'enregister les modifications.

Voici pour exemple une partie du fichier :

4=002 4
6=2.000
7=112.05758
8=98.34928
9=15.508
37=3163497.776
38=2031301.508
39=53.967
5=8
4=002 2
6=2.000
7=122.50523
8=98.59684
9=18.250
37=3163494.378
38=2031303.400
39=53.967
5=9
4=002 5
6=2.000
7=128.90948
8=98.78612
9=21.368
37=3163491.323
38=2031305.481
39=53.972
5=10
4=002 3
6=2.000
7=135.80944
8=99.22309
9=27.602
37=3163485.976
38=2031309.629
39=53.902


Le programme:
Code:

  clear $filenames Get-ChildItem "C:\Data_Transfert\Raw\*.txt" write-host "$filenames" foreach ($filename in $filenames) { (Get-Content $filename) -replace ' 5'' 3' Set-Content $fileName  #SOLUTION QUI FONCTIONNE MAIS CHANGE TOUS LES " 5" " 3" DU FICHIER (Get-Content $filename).Select-String -Pattern "4=" | foreach-object{$_-replace " 5" " 3"} | Set-Content $Filename  #SOLUTION QUI FONCTIONNE MAIS LORSQUE J'OUVRE LE FICHIER IL NE CONTIENT QUE LES LIGNES  "4=Modifié  ou pas" ET LE RESTE A DISPARUE }



Par avance, je vous en remercie.

Christophe.

Message édité par: Tdmpowershell, à: 6/09/19 15:26

Message édité par: Tdmpowershell, à: 6/09/19 15:29

Message édité par: Tdmpowershell, à: 13/09/19 10:33
  | | L'administrateur a désactivé l'accés public en écriture.
hichammadd
Utilisateur

PowerShelleur Amateur
Messages: 92
graphgraph
Karma: 10  
Re:Modification caractère dans fichier - 9/09/19 21:58 Salut Christophe,

essaie comme ca

Code:

 clear $filenames Get-ChildItem "C:\Data_Transfert\Raw\*.txt" write-host "$filenames" foreach ($filename in $filenames) { (Get-Content $filename)  | ForEach-Object {   if ( $_ -match '^4=' ) {     $_ -replace ' 5'' 3'   }   else {     $_   } } | Out-File $filename }

  | | L'administrateur a désactivé l'accés public en écriture.
Tdmpowershell
Utilisateur

PowerShelleur Débutant
Messages: 4
graphgraph
Karma: 0  
Re:Modification caractère dans fichier - 10/09/19 15:33 Bonjour,

Merci pour votre réponse.
Je fais le test jeudi et je vous tiens informé.

Christophe.
  | | L'administrateur a désactivé l'accés public en écriture.
Tdmpowershell
Utilisateur

PowerShelleur Débutant
Messages: 4
graphgraph
Karma: 0  
Re:Modification caractère dans fichier - 12/09/19 10:02 Bonjour,

Génial, au top, exactement la procédure attendue, merci.

Evidemment deux questions quand vous avez un moment:

L'accent circonflexe placer avant "^4=", qu'elle signification?????

Qu'elle est la différence entre :
" | Out-File $fileName" et " | Set-Content $fileName"

Bonne journée,

Christophe.
  | | L'administrateur a désactivé l'accés public en écriture.
Whitatrax
Utilisateur

PowerShelleur Débutant
Messages: 47
graphgraph
Karma: 4  
Re:Modification caractère dans fichier - 12/09/19 15:38 Bonjour,

le "^" désigne le début de ligne (voir les leçons sur les regex)

Out-file va écraser le fichier
Set-content modifie juste le contenu

Out-file :
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-file? view=powershell-6

Set-content :
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-content? view=powershell-6

Whitatrax
  | | L'administrateur a désactivé l'accés public en écriture.
Tdmpowershell
Utilisateur

PowerShelleur Débutant
Messages: 4
graphgraph
Karma: 0  
[RESOLU]Modif caractère dans fichier + Solution - 13/09/19 10:31 Bonjour,

Ok, je consulterai les liens dans un environnement plus tranquille.

Merci.

Christophe.

Ps: Je mets en résolu.
  | | L'administrateur a désactivé l'accés public en écriture.
© 2019 PowerShell-Scripting.com