Le problème ne vient pas du echo car si l'on fait echo " a", cela affiche bien les espaces devant (sur mon ordinateur).
Le problème ne vient pas du cut car si l'on fait echo " abc" |cut -c1-5, on a bien les espaces devant.
Le problème est donc en amont.
Je devine qu'il s'agit du piège classique
for ligne in `cat fichier1` |
La solution consiste a remplacer cette boucle for par
cat fichier1|while read ligne |