[SHELL] Insertion chaine de caractères

Insertion chaine de caractères [SHELL] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 22-12-2008 à 11:05:20    

Bonjour,
 
J'ai une fichier ldif avec les données suivantes:  
 
userPassword: b2a219a7ee0debaf86e9b94eb6b7edf9
userPassword: 7653f8b5c34adea07b004bdd91ebbc18
userPassword: 2bd74fd29306a0926c15d54f5ad57e99
...
 
Je voudrais pouvoir ajouter la chaine {MD5} de telle façon que la sortie de mon fichier soit :
 
userPassword: {MD5}b2a219a7ee0debaf86e9b94eb6b7edf9
userPassword: {MD5}7653f8b5c34adea07b004bdd91ebbc18
userPassword: {MD5}2bd74fd29306a0926c15d54f5ad57e99
 
J'essaye en vain avec la commande sed et a\{MD5}
 
Quelqu'un pourrait-il m'aider à réaliser cette insertion en environnement shell ?
 
Merci bien


Message édité par sneakz le 22-12-2008 à 11:05:57
Reply

Marsh Posté le 22-12-2008 à 11:05:20   

Reply

Marsh Posté le 22-12-2008 à 11:09:36    

Code :
  1. awk -F" " '{$1 {MD5}$2}' fichier.txt


 
devrait faire l'affaire :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 22-12-2008 à 11:37:30    

Merci beaucoup  WedgeAnt mais j'ai oublié de préciser une chose importante.
 
S'agissant d'un fichier au format ldap, il manque des lignes dans mon exemple.
 
L'exemple doit être en fait :
 
dn: cn=Durant
givenname: Toto
sn: DURANT
objectclass: top
objectclass: person
userPassword: b2a219a7ee0debaf86e9b94eb6b7edf9
 
dn: cn=Dupont
givenname: Titi
sn: DUPONT
objectclass: top
objectclass: person
userPassword: a0ab725ec596944a67c5861e2fbd438d
 
etc.
 
Je n'ai pas mis tous les attributs pour ne pas surcharger l'exemple.


Message édité par sneakz le 22-12-2008 à 11:38:42
Reply

Marsh Posté le 22-12-2008 à 11:51:07    

ah ok [:petrus75]
 
ben faut jouer avec la possibilité qu'offre awk de ne traiter que les lignes souhaitées:

Code :
  1. awk -F" " '/userPassword/ {print $1 {MD5}$2}; {print};'


 
à corriger/améliorer etc ...
man awk pour plus d'infos :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 22-12-2008 à 15:38:22    

awk -F" " '/userPassword/ { print $1,"{MD5}"$2 }; {print};' test.ldif
 
Me renvoie :
 
...
objectclass: top
objectclass: person
userPassword: {MD5}524403ad19d00fb9848390a7a81dd9ee
userPassword: 524403ad19d00fb9848390a7a81dd9ee
 
substitution de ligne manquante

Reply

Marsh Posté le 22-12-2008 à 15:53:48    

wedgeant a écrit :

à corriger/améliorer etc ...


:o
 
je t'ai donné quasiment toutes les infos, tu n'as plus qu'à fouiner la page de man de awk pour obtenir le résultat que tu attends :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 22-12-2008 à 16:31:49    

Je suis arrivé au résultat attendu avec cette ligne de commande :
 
awk '$1~/userPassword/ {$2="{MD5}"$2}; {print}' out.ldif

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed