[Darwin Kernel Version 10.8.0] sed dans une boucle while
Bonjour à tous,
Je n'arrive pas à résoudre le fait que le sed de mon script ne fonctionne pas.
En deux mots, j'ai un fichier avec des occurrences de type deux points suivi d'un nombre.
Lorsque j'effectue la ligne de commande
Code:
sed -e 's/:3054976/:0/g' myfile
depuis le terminal, cela fonctionne, par contre dans mon script cela ne fonctionne pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/bin/bash
myfile=$1
thres=$2
cp $myfile tmp
while read line
do
if [ $line -le $thres ]
then
sed -e 's/:$line/:0/g' tmp > tmp1
mv tmp1 tmp
fi
done < datafile |
Que se passe-t-il? Je précise que le fichier datafile est une liste de nombre qu'il faut remplacer par zéro si l'un de ces nombres est inférieur à thres, et que les deux points sont des delimiter de myfile.
Merci pour vos éclaircissements.
Yann