Bonjour tout le monde,

voila mon problème, je souhaite lire un fichier ligne par ligne de la forme
var1 | var2 | var3 | var4

ca j'y arrive de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
while IFS="|"=: read var1 var2 var3 var4
do
echo "$var1 :\n\
	var2 : $var2\n\
	var3 :\t $var3\n\
	var4 :\t $var4\n\"
done < fichier_lu.txt > resultat.txt
ca marche d'enfer sauf pour les cas ou le texte d'une var contient les carctères suivants : ou J'aimerais donc que les carctères contenus dans les var ne soient pas interprétés, est-ce possible ?
si oui comment ?

Merci d'avance

PS : j'ai également essayé de passer par la commande cat de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
cat fichier_lu.txt | while read var1 var2 var3 var4
do
echo "$var1 :\n\
	var2 : $var2\n\
	var3 :\t $var3\n\
	var4 :\t $var4\n\"
done > resultat.txt
ca fonctionne bien aussi mais il prend comme séparateur l'espace et je sais pas comment lui dire que je veux le pipe comme séparateur ...