Problème de caractère spéciaux pour sed/awk en bash
Bonjour,
Voilà je galère avec mon fichier csv que j'ai créer dernièrement.
J'explique la chose, c'est pas bien complexe je penses, mais je dois rater quelque chose.
J'ai un fichier avec un série de chiffre et tab, puis une phrase, de ce style :
Fichier source :
Code:
1 2 3
| 1000 0 1 0 EID_0050_a0040g_0060_TEST010_X -1 0 0 0 25 Hello World!?
1001 2538 0 1 0 EID_0100_a0012_0010_TEST010_X 0 -1 1002 0 5 ........
1002 2538 0 1 0 EID_0100_a0012_0010_TEST010_X 0 -1 1002 0 5 How are you? |
etc etc (6000 lignes)
J'ai extrait le texte pour en faire une trad
fichier csv :
Code:
1 2 3
| Hello World!?;Bonjour le Monde!?
........;...
How are you?;Comment allez-vous ? |
J'aimerai relire mon fichier CSV, de trouver les strings dans mon fichier sources et le remplacer.
J'ai procédé comme ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#!/bin/bash
filename=fichiersource.txt
filecsv=fichier.csv
while IFS=";" read -r col1 col2
do
echo "I got:$col1|$col2"
if [[ $col1 == "END" ]]
then
exit 0
else
sed -i "s:$col1:$col2:g" $filename
fi
done < $filecsv |
Résultat fichier source :
Donc NICE ! >.<
Vous comprenez de suite que j'ai un problème sur les caractères spéciaux, en effet les "...." et autres "*" en début de phrase massacre mon sed et donc massacre mon fichier sources.
C'est que bon, en morse, c'est mon drôle à lire.
Je suis à 2 doigts de finir ma trad ! Je vous serai totalement reconnaissant si vous avez la moindre idée pour palier à ce petit problème (dont j'ai vraiment honte de pas résoudre tout seul :oops: )
Merci d'avance et Bonne soirée !
PS : Je prend aussi tout code en Java/Powershell si besoin et si ça marche mieux !