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

Linux Discussion :

[Débutant] Lire un fichier ligne par ligne


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Par défaut [Débutant] Lire un fichier ligne par ligne
    Bonjour,

    J'aimerais bien lire un fichier ligne par ligne et ré-inscrire chaque ligne dans un autre fichier, j'ai donc fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read line
    do 
    	echo $line >> $shaderOut;
    done < $shaderFile
    Tout fonctionne nickel à part que la toute dernière ligne n'est pas inscrite dans le fichier $shaderOut !
    1) Pourquoi ?
    2) Comment résoudre le problème ?

    Merci d'avance...

  2. #2
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Sans doute parce que la dernière ligne de ton fichier d'entrée ne se termine pas par NewLine.
    Tu peux le vérifier en tapant :
    tail -c1 $shaderFile

    La solution ci-dessous règle le problème en ajoutant un NewLine si nécessaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if [[ `tail -c1 $shaderFile` != "" ]] ; then
        echo "" >> $shaderFile
    fi

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Par défaut
    J'utilise parfois sed '$a\' pour cela (sed '$a\' fichier | while read...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    alain@toto:~$ echo -n a | od -c
    0000000   a
    0000001
    alain@toto:~$ echo a | od -c
    0000000   a  \n
    0000002
    alain@toto:~$ echo -n a | sed a\\ | od -c
    0000000   a  \n
    0000002
    alain@toto:~$ echo a | sed a\\ | od -c
    0000000   a  \n
    0000002
    mais ça prend bien sûr plus de ressources que le solution donnée dans le message précédent

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2014, 18h08
  2. lire une base de donnee ligne par ligne
    Par thildouille dans le forum Langage
    Réponses: 9
    Dernier message: 03/06/2011, 00h50
  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: 3
    Dernier message: 16/10/2007, 20h45

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