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 :

[ksh] Lecture d'un fichier unicode ligne par ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut [ksh] Lecture d'un fichier unicode ligne par ligne
    Bonjour,

    je souhaite lire ce fichier ligne par ligne, seulement, ça foire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for line in `cat TMP`
    > do
    > echo "[${line}]" >>TMP2
    > done
    Contenu du fichier texte :
    # {060803} {奥妙全能白水清莲香洗衣皂 118g*4*20} #
    # {07361140} {家乐瑶柱汁6*1kg} #
    # {12370210} {家乐黑椒酸辣汤-新包装6*20*36g} #
    # {07001116} {鸡汁08年第二波促销装6*1kg} #
    # {12341120} {家乐香炸裹粉12*800g鲜蒜风味} #
    # {07191110} {家乐浓缩火腿汁6*1kg} #
    # {07191130} {家乐牛肉汁6*1kg} #
    # {12290210} {家乐鱼片蔬菜汤-新包装6*20*32g} #
    # {12361120} {家乐香炸裹粉12*800g鲜辣风味} #
    # {11520500} {家乐香辣虾酱12*310g} #
    # {07191120} {家乐浓缩蘑菇汁6*1kg} #
    # {12300210} {家乐西湖牛肉羹-新包装6*20*37g} #
    # {12170210} {家乐日式海鲜味噌汤4*15*31g} #
    # {07361104} {瑶柱汁08年促销装6*1kg} #
    # {07001115} {鸡汁08年2季度促销装6*1kg} #
    # {12250210} {家乐鸡茸玉米羹-新包装6*20*38g} #
    # {08170700} {家乐真味高汤6*830g} #
    # {11500500} {家乐孜然辣酱12*310g} #
    # {07001100} {家乐浓缩鸡汁G3 6*1kg} #
    TMP2 :
    #
    {060803}
    {奥妙全能白水清莲香洗衣皂
    118g*4*20}
    #
    #
    {07361140}
    {家乐瑶柱汁6*1kg}
    #
    #
    {12370210}
    {家乐黑椒酸辣汤-新包装6*20*36g}
    #
    #
    {07001116}
    {鸡汁08年第二波促销装6*1kg}
    #
    #
    {12341120}
    {家乐香炸裹粉12*800g鲜蒜风味}
    #
    #
    {07191110}
    {家乐浓缩火腿汁6*1kg}
    #
    #
    {07191130}
    {家乐牛肉汁6*1kg}
    #
    #
    {12290210}
    {家乐鱼片蔬菜汤-新包装6*20*32g}
    #
    #
    {12361120}
    {家乐香炸裹粉12*800g鲜辣风味}
    #
    #
    {11520500}
    {家乐香辣虾酱12*310g}
    #
    #
    {07191120}
    {家乐浓缩蘑菇汁6*1kg}
    #
    #
    {12300210}
    {家乐西湖牛肉羹-新包装6*20*37g}
    #
    #
    {12170210}
    {家乐日式海鲜味噌汤4*15*31g}
    #
    #
    {07361104}
    {瑶柱汁08年促销装6*1kg}
    #
    #
    {07001115}
    {鸡汁08年2季度促销装6*1kg}
    #
    #
    {12250210}
    {家乐鸡茸玉米羹-新包装6*20*38g}
    #
    #
    {08170700}
    {家乐真味高汤6*830g}
    #
    #
    {11500500}
    {家乐孜然辣酱12*310g}
    #
    #
    {07001100}
    {家乐浓缩鸡汁G3 6*1kg}
    #
    Y a des sauts de ligne involontaire, j'en déduis que je m'y prends mal, comment faire ça proprement en ksh?

    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    ca serait pas à cause des idéogrammes?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut
    Les espaces dans le fichier provoque une nouvelle itération dans ton for.
    En clair : supprime les espaces dans chaque lignes
    (ou sers-toi des dièses pour le changement de ligne)

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Non les idéogrammes n'y sont pour rien et je ne veux absolument pas supprimer les espaces, je veux lire le fichier ligne par ligne avec l'alignement et les espaces qu'il contient.

    Apparemment, je me suis fourvoyé, la manière que j'utilise ne lit pas ligne par ligne mais mot par mot

    Des solutions?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cat TMP | while read line
    do
    echo $line >> TMP2
    done

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut


    En fouinant j'ai trouvé une technique similaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    { while read line
    do
    echo ${line}
    done } < TMP


    Comment se fait-il que while lit bien une ligne et for que les mots? Es-ce un comportement voulu?

    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

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

Discussions similaires

  1. lecture d'un fichier txt ligne par ligne
    Par SoBaKa dans le forum Général Python
    Réponses: 4
    Dernier message: 06/03/2007, 12h02
  2. Lecture d'un fichier ligne par ligne
    Par kabouns dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 15h46
  3. Réponses: 20
    Dernier message: 09/02/2006, 09h45
  4. [lecture d'un fichier] ligne par ligne
    Par pitit777 dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 11h22
  5. [debutant]lecture fichier ligne par ligne
    Par Battosaiii dans le forum C
    Réponses: 2
    Dernier message: 13/11/2005, 19h02

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