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 :

Afficher ligne manquante avec bash


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut Afficher ligne manquante avec bash
    Bonjour
    J'ai un fichier " file.txt " avec le contenue suivant :
    2001
    2004
    2005
    2008
    2010

    je voudrais svp savoir si il existe une commande
    qui va afficher a la façon de "less" ou "cat" ce fichier "file.txt"
    mais qui ne va afficher que les nombres manquants de la liste comme suivant :

    2002
    2006
    2007
    2009

    j'espere que ma question est clair
    Merci de votre aide

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    Non, pas de commande triviale...

    Et 2003 ?

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    il n'existe, à ma connaissance, pas d'outil qui fera, tout seul, ce que tu souhaites.
    tu dois construire un algorithme, et coder avec un langage de programmation (un interpréteur de commande, python, perl...).
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut Afficher ligne manquant avec bash
    Oui; en effet j'ai avaler le 2003
    - -
    D'accord, merci de votre rapide retour.
    je suis sous linux et je m'amuse beaucoup avec le shell mais je debute a peine avec python..
    je vais consulter les docs proposer et passer le sujet a resolue je crois.non?


  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Allez, puisque 2003 fait partie de la liste, une solution exclusivement bash:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ cat manque_bash.txt
    2001
    2004
    2005
    2008
    2010
    $ { read i ; while read j; do while [[ $((++i)) -ne $j ]] ; do echo $i ; done ; done ; } <manque_bash.txt
    2002
    2003
    2006
    2007
    2009

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut Afficher ligne manquant avec bash
    j'ai renomé mon fichier en manque_bash.txt et j'ai copier/coller la comande
    mais ça ne fonctionne pas et j'avoue que j'arrive pas a trouver l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ { read i ; while read j; do while [[ $((++i)) -ne $j ]] ; do echo $i ; done ; done ; } <manque_bash.txt
      bash: Erreur de syntaxe près du symbole inattendu « } »
    cordialement

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 6
    Par défaut
    Ce n'est peut etre pas tres propre mais j'ai fais comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat  manque_bash.txt > complet_bash.txt
    pour l'exemple,j'ai completer manuellement la liste
    du fichier complet_bash.txt pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    2001
    2002
    2003
    2004
    2005
    2006
    2007
    2008
    2009
    2010
    je vais donc garder ce fichier "complet" au chaud quelque
    part et appeller la commande suivante pour afficher
    les "manquant de la liste" a la demande :
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ diff manque_bash.txt complet_bash.txt | grep ">"
    > 2002
    > 2003
    > 2006
    > 2007
    > 2009
    > 
    
    Voila! il reste juste a emballer le tous d'un beau "alias" pour l'esthetique

    a +

  8. #8
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Citation Envoyé par shabang Voir le message
    j'ai renomé mon fichier en manque_bash.txt et j'ai copier/coller la comande
    mais ça ne fonctionne pas et j'avoue que j'arrive pas a trouver l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ { read i ; while read j; do while [[ $((++i)) -ne $j ]] ; do echo $i ; done ; done ; } <manque_bash.txt
      bash: Erreur de syntaxe près du symbole inattendu « } »
    cordialement
    Le premier "$" ne fait pas partie de la commande, c'est mon prompt.

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

Discussions similaires

  1. Ligne manquante avec la fonction DECALER
    Par mathilde989 dans le forum Excel
    Réponses: 1
    Dernier message: 06/01/2011, 10h28
  2. lire une selection de ligne avec bash
    Par s_abel dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 20/03/2009, 14h12
  3. Afficher les lignes désirées avec la commande awk
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/06/2007, 20h58
  4. [MySQL] Comment affiché un résultat avec plusieurs lignes et plusieurs champs dans un tableau
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 15/05/2007, 14h19
  5. Afficher une liste, avec 2 résultats par ligne
    Par toutoune60 dans le forum JSF
    Réponses: 5
    Dernier message: 12/02/2007, 15h49

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