IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Lecture de fichier ligne par ligne avec caractères spéciaux


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut Lecture de fichier ligne par ligne avec caractères spéciaux
    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 ...

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    peut etre avec ${var1} au lieu de $var1 ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    Bien tenté mais fonctionne pas, merci quand même

    je me demande si c'est pas interprété avant, à la lecture du fichier
    dans le while read ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 270
    Points : 83
    Points
    83
    Par défaut
    bon, j'ai contourné le problème en parsant le fichier dans un premier temps pour mettre un backslash avant le égal à l'aide de la commande sed

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2014, 18h08
  2. Réponses: 8
    Dernier message: 30/07/2012, 10h14
  3. lire fichier .txt (NOTEPAD) ligne par ligne
    Par skambram dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/06/2009, 18h41
  4. lire un fichier de string ligne par ligne
    Par bilzzbenzbilz dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/02/2009, 10h44
  5. Réponses: 20
    Dernier message: 09/02/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo