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 :

Recherche de "certaines" extensions


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Par défaut Recherche de "certaines" extensions
    Bonjour,

    Je suis à la recherche d'un script qui me permettrais de m'avertir si des fichiers n'ayant pas certaines extensions se trouvent dans un dossier.
    Les extensions devant être présentent sont : sans extension, .msf, .sbd (en fait il s'agit des sauvegardes de messagerie des utilisateurs)

    Pour l'instant, je n'ai trouvé que cette ligne de commande qui me permet de lister les fichiers ayant une extension par exemple en PDF : find /mnt/save_bali -name "*.pdf"

    Le script que je souhaite devra faire l'inverse, c'est à dire m'alerter si des fichiers n'ayant pas les extensions "reconnues".

    merci pour votre aide

    Eric

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ mkdir testDir
    $ touch testDir/test{,.{sbd,msf,txt,autre}}
    $ ls testDir/
    test  test.autre  test.msf  test.sbd  test.txt
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ shopt -s extglob
    $ printf '%s\n' testDir/*.!(sbd|msf)
    testDir/test.autre
    testDir/test.txt
    $
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    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
    Hmmm,

    @N_BaH: ça ne retourne pas les fichiers du type testDir/.test.autre (mais ce n'est peut-être pas utile).

    Sinon, un exemple de find:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find testDir ! -regex ".*.\(sbd\|msf\)"

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    ça ne retourne pas les fichiers du type testDir/.test.autre (mais ce n'est peut-être pas utile).
    si nécessaire, ajouter l'option dotglob à shopt.

    par contre, la regex affiche aussi les fichiers sans extension.
    parmi les fichiers qui ont une extension, il faut afficher ceux dont l'extension n'est pas msf ou sbd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find testDir -type f -regex '.*\..*' -a ! -regex '.*\.\(sbd\|msf\)'
    évidemment, je préfère la version full bash.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     find / -type f    -a  !  \( -name "*.pdf" -o  -name "*.msf" \)

  6. #6
    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
    Autant le faire en une regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find testDir -type f ! -regex ".*/[^.]*\(\.sbd\|\.msf\)*"
    PS: soit on utilise le -a partout, soit on ne l'utilise pas puisqu'il find lie ces filtres de cette manière par défaut...

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Par défaut
    merci pour vos réponses.
    Vous êtes super.

    merci

    Éric

  8. #8
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2017
    Messages : 7
    Par défaut
    bonjour N_Bah,

    merci pour ta réponse.
    J'ai exécuté la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /mnt/save_bali/pc -regex ".*.\(sdb\|msf\)"
    et j'ai bien la liste des fichiers ayant comme extension sdb et msf qui s'affiche.

    Existe -t-il "l'inverse" ? C'est à dire qu'il m'affiche les fichiers n'ayant pas les extensions désirées (sans extension, msf et sdb)

    merci

    Éric

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

Discussions similaires

  1. Recherche d'une extension pour afficher du code Java
    Par Elmilouse dans le forum Mise en forme
    Réponses: 2
    Dernier message: 28/05/2006, 09h08
  2. Réponses: 4
    Dernier message: 23/01/2006, 18h26
  3. Ne voire que certaines extensions et masquer les autres
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/12/2005, 23h04
  4. Réponses: 7
    Dernier message: 31/10/2005, 19h10
  5. [systeme]Ouverture aut. de fichiers d'une certaine extension
    Par AnKhCHFR dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 23/08/2005, 17h06

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