Question Fichier CSV

Plus d'informations
il y a 13 ans 3 mois #13213 par cfg
Fichier CSV a été créé par cfg
Bonjour

Je debute en powershell et afin de faire une comparaison de fichier, j'ai besoin de renomer un en-tete d'un fichier csv.
J'ai un extract venant d'un OpenLdap et il faut que je renomme l'en-tete \"uid\" en \"sAMAccountName\".
Si quelqu'un a une idée je suis preneur :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #13440 par Gabriel
Réponse de Gabriel sur le sujet Re:Fichier CSV
Salut

supposons que la premiere ligne du fichier venant de ldap contienne ça
[code:1]
\"dn\",\"uid\",\"name\",\"autres champs...\"
[/code:1]

on peut faire ça

[code:1]
\"dn\",\"sAmAccountName\",\"name\",\"autres champs...\" | out-file c:\temp\nouveaufichier.csv -Force

Get-Content C:\temp\ancienFichier.csv | select -Skip 1 | out-file c:\temp\nouveaufichier.csv -Append
[/code:1]

grosso modo tu créé un nouveau fichier avec l'entete qui va bien, mais il faut conserver l'ordre des champs

Ensuite tu copies les données de l'ancien fichier en ignorant la premiere ligne de l'ancien fichier.

bon la technique est un peu brutale, puisqu'il n'ya pas de controle des champs, ça suppose que l'ordre des colonnes ne change pas.<br><br>Message édité par: tonic8, à: 24/12/12 16:41

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #13442 par darphboubou
Réponse de darphboubou sur le sujet Re:Fichier CSV
En supposant que j'ai bien compris ta problematique

tu as obtenu un fichier CSV suite a une extract open ldap
Avec en en tête une colonne nommée UID
donc si tu veux juste remplacer UID par SamaccountName


Il suffit de faire

[code:1]
$content= Get-Content \&quot;monfichier.csv\&quot; | Foreach {$_-replace \&quot;UID\&quot;,\&quot;SamAccountName\&quot;}
Set-Content -Path \&quot;monfichier.csv\&quot; -Value $content
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #13448 par Gabriel
Réponse de Gabriel sur le sujet Re:Fichier CSV
Attention Darphboubou, ta commande implique que les 3 lettres UID ne sont pas utilisées dans les données du fichier CSV.

si par exemple ton fichier CSV contient les données suivantes
[code:1]
toto,uid,tata,tutu
toto,uid,tata,tutu
TOTO,UID,TATA,TUTU
toto,oid,tata,tutu
toto,ouidzz,tata,tutu
[/code:1]

ça donne cela
[code:1]
PS C:\temp&gt; $content= get-content .\test.csv | Foreach {$_-replace \&quot;UID\&quot;,\&quot;SamAccountName\&quot;}
PS C:\temp&gt; $content
toto,SamAccountName,tata,tutu
toto,SamAccountName,tata,tutu
TOTO,SamAccountName,TATA,TUTU
toto,oid,tata,tutu
toto,oSamAccountNamezz,tata,tutu
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #13449 par darphboubou
Réponse de darphboubou sur le sujet Re:Fichier CSV
C'est pas faux ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 2 mois #13451 par SiSMik
Réponse de SiSMik sur le sujet Re:Fichier CSV
Sinon pour réduire encore les risques

[code:1]$content= get-content .\test.csv | Foreach {$_-replace \&quot;,UID,\&quot;,\&quot;,SamAccountName,\&quot;}[/code:1]

:P

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.047 secondes
Propulsé par Kunena