Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2007, 13h44   #1
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
Par défaut problème avec la commande CAT

Bonjour,

J'ai un petit soucie avec la commande CAT.

J'ai un fichier de ce type (CSV) :

michel;dubois;Dfed45Dc
audrey;leroux;fg45DFDE
jean;le conte;Fde45SDc
melanie;font;fdE45S1C

Je sais un cat de ce fichier :

Code :
1
2
3
FILE=/home/file.csv
CONTENU=$(cat $FILE)
echo $CONTENU
Résultat :

michel;dubois;Dfed45Dc
audrey;leroux;fg45DFDE
jean;le
conte;Fde45SDc
melanie;font;fdE45S1C

alors que je voudrai avoir :

michel;dubois;Dfed45Dc
audrey;leroux;fg45DFDE
jean;le conte;Fde45SDc
melanie;font;fdE45S1C

les espaces entre les mots font un retour chariot...

Comment je pourais faire pour éviter ce problème ?
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 14h19   #2
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
j'ai trouvé la solution :

Code :
1
2
3
4
5
6
7
ldIFS=$IFS     # sauvegarde du séparateur de champ
IFS=$'\n'     # nouveau séparateur de champ, le caractère fin de ligne
for ligne in $(cat fichier)
do
   commande
done
IFS=$old_IFS     # rétablissement du séparateur de champ par défaut
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 15h21   #3
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Autre solution qui t'évite de tripatouiller la variable IFS

Code :
1
2
3
4
 
while read ligne ; do
	echo "* $ligne"
done < fichier
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h51.


 
 
 
 
Partenaires

Hébergement Web