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 :

Lister tous les fichiers du répertoire courant qui ne commencent pas avec une chaine de caractères


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Par défaut Lister tous les fichiers du répertoire courant qui ne commencent pas avec une chaine de caractères
    Bonjour les amis ..
    J'ai une petite question , je veux lister des fichier qui ne commencent pas avec une chaine de caractere par exemple je veux qu' ils ne commencent pas avec "dada" ..
    je sais qu'elle marche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ls -a | grep -v "^dada"
    ...
    mais la question est de la faire sans -v par exemple .. c.a.d avec ^ .. comment ?
    j'ai utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -a | grep ^[^"dada"]
    mais elle le traite comme caractere par caractere .. meme question pour ls seulement ...

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

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

    sans -v, sans grep, et sans ls :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ shopt -s extglob
    $ printf '%s\n' !(dada*)
    les regex seules ne peuvent pas "ne pas correspondre" à un motif.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Par défaut
    je veux just sans -v mais avec grep ..

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    les regex seules ne peuvent pas "ne pas correspondre" à un motif, avec grep, ou un langage qui peut utiliser des regex.
    il doit y avoir soit une option (pour grep c'est -v), ou une "commande" (par exemple, avec sed, le point d'exclamation qui induit une négation : /motif/!{commandes...}).

    et puis
    quand on apprend à coder, ON N'UTILISE PAS ls !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    GNU grep permet d'utiliser des regex PCRE, et donc des negative lookahead :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -a | grep -P "^(?!dada)"

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls | grep '^[^d]\|d[^a]\|da[^d]|dad[^a]'

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Pas mal du tout!

    Y a juste un petit bug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "\nd\nda\ndad\n" | grep '^[^d]\|d[^a]\|da[^d]|dad[^a]'
    Rq: je crois bien n'avoir jamais réussi à faire une regexp avec quelque chose comme "^($|[^d])"
    (à moins de permuter '^\([^d]\|$\)')

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Oh, punaise. Quelle galère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "\nd\nda\ndad\ndada\ndadada" | grep '^[^d]\|^d[^a]\|^da[^d]\|^dad[^a]\|^$\|^d$\|^da$\|^dad$'
    Ils ont bien fait d'inventer l'inverse.

  9. #9
    Membre averti
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Par défaut
    Merci les amis (y)

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

Discussions similaires

  1. [XL-2010] Ouvrir tous les fichiers du répertoire sauf le fichier courant
    Par Kaera dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/04/2013, 16h12
  2. Réponses: 4
    Dernier message: 02/08/2011, 18h01
  3. Script Shell : lister tous les fichiers d'un répertoire et sous rép
    Par raton_laveur dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 22/01/2009, 17h43
  4. Lister tous les fichiers du répertoire courant
    Par jeuf37 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/04/2008, 21h00
  5. lister tous les fichiers avec des différences entre deux répertoires.
    Par contremaitre dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/03/2008, 16h24

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