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 :

ls suivant deux conditions


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2022
    Messages : 46
    Par défaut ls suivant deux conditions
    Bonjour,

    Je possède une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    lig-a-20.pdb
    lig-a-80.pdb
    lig-a-20.txt
    lig-a-80.txt
     
    lig-b-20.pdb
    lig-b-80.pdb
    lig-b-20.txt
    lig-b-80.txt
    J'aimerais extraire uniquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lig-a-20.pdb
    lig-a-80.pdb

    Soit je fais ls -v *.pdb et j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    lig-a-20.pdb
    lig-a-80.pdb
    lig-b-20.pdb
    lig-b-80.pdb

    Soit je fait ls -v lig-a*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    lig-a-20.pdb
    lig-a-80.pdb
    lig-a-20.txt
    lig-a-80.txt
    Comment mettre 2 conditions pour obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lig-a-20.pdb
    lig-a-80.pdb
    J'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ls -v *.pdb  | ls -tv lig-a*

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ls -v *.pdb  | ls -tv lig-a*
    et dans l'autre sens ? avec un seul ls.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2022
    Messages : 46
    Par défaut
    Avec un seul ls je ne peux que mettre qu'une fois le *

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2022
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2022
    Messages : 46
    Par défaut
    Avec un seul ls je ne peux que mettre qu'une fois le Je voudrais sortir le fichier qui contient "lig-a" et "pdb"

    A la place du ls voici une boucle que j'ai tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i in $liste;do
        if [ "lig-a" || "pdb" in $i ] && ; then 
            echo "$i"
        fi
    done

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    Avec un seul ls je ne peux que mettre qu'une fois le *
    et ?
    de toutes façons, non, on peut en mettre autant que nécessaire.
    mais, pourquoi voudrais-tu en mettre plus ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Dorhub Voir le message
    J'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ls -v *.pdb  | ls -tv lig-a*
    Tu n'as pas compris le principe du pipe. Il sert à rediriger dans la commande 2 ce que la commande 1 sort (normalement à l'écran).
    Exemple: ls -l |tr '[:lower:]' '[:upper:]'.

    Ca suppose que la commande 2 a besoin d'infos à manger (dans mon cas, un flux à convertir qui lui proviendra ici du "ls -l")

    La commande "ls" n'a besoin de rien en entrée donc on ne peut rien lui piper. Ce qui se passe ici c'est que le premier "ls" part dans le second qui s'en bat le steak donc il est perdu. Ce que tu aurais pu faire, c'est filtrer le "ls" via un grep pour extraire seulement les lignes qui t'intéressent. Là ça aurait été un pipe fonctionnel. Toutefois on peut faire sans.

    N_BaH essaye de te guider pour que tu trouves tout seul la solution donc je ne peux pas lui pourrir son travail en te la donnant directement. Ce que je peux te dire, c'est qu'entre "lig-a-20.pdb" et "lig-a-80.pdb" il n'y a vraiment pas beaucoup de différences. Tu peux donc les identifier pour dire alors à "ls" de ne pas en tenir compte.

    Et pour ta boucle, en faisant abstraction de son inutilité par rapport au besoin, alors l'idée est bonne. Malheureusement le bash n'est pas assez intelligent pour comprendre une expression type valA || valB in string donc il faut faire plus simple pour la lui représenter.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    si, je pense que le principe du pipe est compris (passer les données d'une commande à une autre), mais Dorhub ne sait pas que ls ne lit pas de données sur son entrée standard.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 297

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    spoileur !

    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. [XL-2007] VBA Copier/coller certaines cellules suivant deux conditions
    Par Franck76Dav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/08/2017, 17h08
  2. [Toutes versions] transfert entre deux feuilles suivant des conditions
    Par skrobar dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/06/2010, 15h19
  3. [JSTL] Inclure deux pages suivant une condition if
    Par jejam dans le forum Taglibs
    Réponses: 10
    Dernier message: 31/01/2006, 10h55
  4. Réponses: 8
    Dernier message: 20/06/2005, 15h10
  5. Réponses: 5
    Dernier message: 29/09/2004, 11h05

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