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 :

sed ne retourne pas la dernière ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut sed ne retourne pas la dernière ligne
    Bonjour,

    j'ai un fichier application.xml (une appli web développée sous windows) qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne1 AAA CRLF
    ligne2CRLF
    ligne3
    CRLF = carriage return + line feed
    Quand j'exécute la commande:
    ...et bien sed me supprime la derniere ligne: ligne3

    La version d'HP-UX est: B.11.23. Est ce un bug ? Sous Linux Ubuntu ca marche parfaitement !!!!

    Comme solution de contournement j'ai créé un fichier qui contient CR+LF que j'appende a mon fichier application.xml.
    Le problème est que je doit traiter un ensemble de fichiers EARs que je décompacte, je les traite avec sed pour faire du remplacement de chaîne de char.

    Je ne suis pas sur que ma solution de contournement fonctionne a tout les coups.

    Y aurait il une meilleure méthode ?

    PS: je n'ai pas mis le sources XML. L'exemple est bien sur un raccourci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 103
    Points : 28 398
    Points
    28 398
    Par défaut
    Comment appelles-tu sed ?
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat fichier | sed "command"

  3. #3
    Membre actif
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut
    J'appelle sed par une ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "s/AAA/BBB/g" mon_fichier
    je vais tester le cat .... | sed ....
    J'y avais pas pensé.

    Résultat du test cat .... | sed ..... ==> ne fonctionne pas non plus. La dernière ligne n'est jamais retournée par sed

    par contre j'ai trouvé quelque chose de bizarre:

    sed "......" lefichier | wc -l me donne 7 lignes
    wc -l sur le fichier original me donne 7 lignes

  4. #4
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Attention : avec certains Shell, si la dernière ligne n'est pas suivie d'un retour ligne, elle est cachée par le prompt. Ajoute "; echo" à ta ligne de commande ou redirige la sortie dans un fichier pour vérifier.

    Si wc reçoit bien toutes les lignes, je pense que c'est un problème de ce genre.

  5. #5
    Membre actif
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Points : 289
    Points
    289
    Par défaut
    Merci pour ta réponse. Je l'ai essayé mais celà ne marche pas. Rien ! La dernière ligne est définitivement perdu pour sed.

    Sincèrement je penses à un bug.
    Ma solution de contournement mise en place (append d'un fichier qui contient CR + LF) fonctionne. Je vais continuer comme ça.

Discussions similaires

  1. [ODBC] ODBC ne me retourne pas toutes les lignes
    Par jfleost dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 14/02/2012, 13h59
  2. [Oracle] PHP ne retourne que la dernière ligne d'un resultat d'une procedure stockée ORACLE
    Par tytous dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 08/06/2010, 07h57
  3. Réponses: 1
    Dernier message: 01/12/2007, 18h37
  4. Ne pas traiter les x dernières lignes
    Par Fluxy dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2007, 13h22
  5. Réponses: 6
    Dernier message: 19/03/2007, 11h09

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