Bonjour,
j'ai une liste de fichiers à transformer : il y a une liste de chaînes de caractères à remplacer dans tous les fichiers.
Donc, j'ai un fichier de correspondance Correspondance.txt comme suit :
Correspondance.txt
--------------------
chaine1---New_ch1
chaine2---New_ch2
chaine3---New_ch3
Liste de fichiers où effectuer les changements :
List=`ls *.dat`
donc, je dois parcourir les fichiers, quand je trouve une chaine dans correspondance.txt, je la vire et je la remplace par la nouvelle.
donc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 for file_name in List do while read line do old_string=`echo $line | awk '{ print $1 }'` new_string=`echo $line | awk '{ print $2 }'` sed 's/$old_string/ $new_string /g' $file_name done < correspondance.txt done
Le problème est que mes fichiers ont une certain format que je dois respecter et que old_string et new_string n'ont pas nécessairement le même nombre de caractères, ce qui fait que je fais foutre en l'air e format de tous mes fichiers.
Comment faire donc pour ne pas bousiller ce format? (par format je veux dire colonne 1 correspond à telle information, colonne 21 correspond à une autre information et que le fait de remplacer peut changer ces colonnes la)
Ce qu'il faut faire c'est l'équivalent de "Insert" de windows, en virant les caractéres supplémentaires..
qqn a une idée? Merci
Partager