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 :

problème de retour chariot


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut problème de retour chariot
    bonjour,

    j'aimerai tester que la dernière ligne du fichier "a_sauver.txt" est terminée par un retour chariot pour cela j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    #je recupere le dernier caractère du fichier par
    last_char=`tail -c1 /mnt/DEDE/a_sauver.txt |rev`
    if [ $last_char -ne \n ]
    then echo "pas egal"
    else echo "egal"
    fi
    malheureusement j'ai un erreur sur la ligne du test : "line 4: [: -ne: unary operator expected"

    est ce que quelqu'un peut m'expliquer ce qui se passe ?
    merci d'avance

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    À mon avis il faut des "" autour de ton \n

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut meme erreur
    avec ou sans guillemets c'est la même erreur...

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Citation Envoyé par D[r]eadLock
    À mon avis il faut des "" autour de ton \n
    Beaucoup plus surement autour de ${last_char}...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Par défaut
    toujours pas....

    j'ai modifié mon code de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    #je recupere le dernier caractère du fichier par
    last_char=`tail -c1 /mnt/DEDE/a_sauver.txt`
    if [ $'\n' = "${last_char}" ]
    then echo "egal"
    else echo "pas egal"
    fi
    et je n'ai plus d'erreur, par contre dans tout les cas de figure le srcipt me renvoie "pas egal". quelqu'un comprends pourquoi ?

    une idée : peut etre que mon "tail" recupere le caractère de fin de fichier ? dans ce cas comment récuperer le dernier caractère de la dernière ligne ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Par défaut L'artillerie lourde
    Hello,

    si le problème persiste, voici une solution qui utilise un dump pour extraire le dernier caractère du fichier sous une forme plus civilisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LAST=$(tail -c1 /mnt/DEDE/a_sauver.txt| od -c -An)
    if [ $LAST = "\\n" ] ; then echo "Egal" ; else echo "Different" ; fi
    Du coup il faut échapper le caractère d'échappement dans la comparaison, d'où le double backslash.

    HTH

    MarkH

Discussions similaires

  1. [DOM] Problème de retour chariot après les noeuds
    Par Phenomenium dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/03/2008, 13h58
  2. problème de retour chariot!
    Par jguep dans le forum C
    Réponses: 2
    Dernier message: 03/12/2006, 15h16
  3. [SQL Loader] problème de retour chariot
    Par euphorix dans le forum SQL
    Réponses: 3
    Dernier message: 31/08/2006, 05h37
  4. Problème de Retour Chariot
    Par AyreoN dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2006, 11h00
  5. [Struts] Problème de retour chariot
    Par pimousse76 dans le forum Struts 1
    Réponses: 5
    Dernier message: 22/11/2004, 15h39

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