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 :

[csh] Alias de recherche avec double arguments


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2015
    Messages : 21
    Par défaut [csh] Alias de recherche avec double arguments
    Bonjour
    j'ai un fichier .alias en c-shell (#!/bin/csh -f) où j'ai d'innombrables alias définis, de type : alias toto 'expression linux'

    J'essaie de créer un alias sous c-shell qui permette, via 2 arguments, de chercher, dans le dossier et ses sous-dossiers, les fichiers ascii dont le nom contiennent l'argument 1 et aussi qui contiennent eux-même la chaîne de caractère de l'argument 2. P.ex tout les fichiers '*051*txt' (càd tous les fichiers txt dont le nom contient 051) et qui contiennent à l'intérieur la chaine AA. Je lance l'alias ainsi : Mon alias fmot est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alias fmot 'find . -name \!:1 -type f | xargs grep -l \!:2'
    Alors ça marche si tous les répertoires et fichiers non pas d'espaces, mais ça bugge dès qu'un espace dans le chemin du nom de fichier est présent (problème avec le grep qui s'arrête à l'espace). Y aurait-il un moyen de rajouter des quotes (?) qq part pour que ça marche ?

    Merci pour toute suggestion

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Il y a très très longtemps que je n'ai pas fait de csh, mais je me souviens de problèmes semblables au tien: où et comment mettre des quotes dans un alias...

    Je me souviens aussi avoir abandonné et être passé à la solution classique: le script !

    Je me suis fait un répertoire ~/SHELL que j'ai ajouté à mon $PATH et dans lequel j'ai mis les scripts utilitaires ou autres.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chmod +x ~/SHELL/fmot
     
    cat ~/SHELL/fmot
    #!/bin/sh
     
    find . -name "$1" -type f -exec grep -l "$2" {} \+
    Ce n'est qu'une suggestion...

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2015
    Messages : 21
    Par défaut
    Ca m'a donné une idée de l'écrire autrement, en passant par l'option exec au lieu de piper par xargs. Voilà le code qui marche donc, avec possibilités de chercher des (sous-)fichiers et/ou répertoires contenant des noms à espace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alias fmot 'find . -name \!:1 -type f -exec grep -l \!:2 {} \;'
    Merci pour l'idée !

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

Discussions similaires

  1. [XL-365] Recherche avec double barème
    Par jedimaster10 dans le forum Excel
    Réponses: 7
    Dernier message: 01/06/2023, 17h31
  2. [CSH] alias avec arguments
    Par tompaspro dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 19/12/2019, 15h32
  3. [CSH] alias et expression avec quotes/doubles quotes
    Par tompaspro dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 18/10/2019, 16h07
  4. [WD17] recherche avec Double filtre
    Par mistor dans le forum WinDev
    Réponses: 1
    Dernier message: 13/05/2015, 14h42
  5. Réponses: 11
    Dernier message: 11/09/2008, 19h14

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