merci beaucoup pour :
( IFS="\n" ; tout='' ; while read ligne do tout="$tout$ligne" done < mon_fich echo "$tout" )
Cela m'a permis de découvrir $IFS,le parentésage pour indiquer que c'est un sous-shell et "while read champ1 champ2 champ3" au lieu des instructions "while read ligne" et "variable1=`echo $laligne | awk -F: '{print $1 }'`"
a+ f.