4 votes

Liste de tous les alias commençant par une chaîne particulière

Pour améliorer les étapes que je dois suivre pour effectuer certaines actions sur mon Mac, j'ai créé de nombreux alias. Par exemple :

  1. Pour ouvrir les Préférences Système, ce que je dois faire souvent pour gérer plusieurs moniteurs, j'ai créé l'alias suivant dans ~/.bash_profile :

    alias pref='open -a System\ Preferences'
  2. Pour mettre mon installation en mode "Travail à domicile", j'ai :

    alias wfh='code&rdc&smc&'

    qui ouvre Visual Studio Code, le Remote Desktop et le Cisco Mobility Client.

  3. Pour travailler avec les alias eux-mêmes, j'ai :

    alias editbash='nano ~/.bash_profile;source ~/.bash_profile'

    qui ouvre le ~/.bash_profile dans l'éditeur nano et quand j'ai terminé, il met automatiquement à jour le contenu du fichier pour moi.


Question :

J'ai de nombreux alias qui sont tous liés à git. J'oublie souvent l'alias pour certaines actions. Cependant, la bonne nouvelle est que tous mes alias git commencent par gt .

Comment puis-je lister uniquement les alias qui commencent par une chaîne de caractères particulière ?

4voto

displayName Points 2165

grep pour eux


  1. Bien meilleure suggestion que les commentaires - grep sur l'alias.

    Vous pouvez lister tous vos alias, même ceux qui ne sont pas écrits dans ~/.bash_profile en appelant alias .

    grep le résultat pour trouver les alias à partir de gt comme :

    alias | grep "^alias gt"

  1. Puisque les alias sont créés en écrivant alias <alias_name>=... pour lister les alias commençant par, par exemple, gt que vous pouvez faire :

    grep "^alias gt" ~/.bash_profile

    Le site ^ dans l'argument grep est une ancre. Le curseur ^ et le symbole du dollar $ sont des métacaractères qui correspondent respectivement à la chaîne vide au début et à la fin d'une ligne.

    Sur ^alias gt cela implique que vous ne voulez que les lignes qui commencent par "alias gt". Sur ma machine, j'obtiens le résultat suivant :

    alias gts="git status" 
    alias gtd="git diff" 
    alias gtpull="git pull"
    alias gtb="git branch"  
    alias gtpush="git push"  
    alias gtpullmk="gtpull;./make all"  
    alias gtst="git stash"  
    alias gtstash="gtst save"  
    alias gtstlist="gtst list"  
    alias gtctall="runformatter;git commit -a"

  1. Alternativement, vous pouvez grep sans l'ancre comme :

    grep gt ~/.bash_profile

    Ici, vous recherchez simplement toute ligne qui contient la sous-chaîne "gt", n'importe où. En conséquence, vous pouvez obtenir quelques lignes inutiles, mais vous obtiendrez tous les alias qui utilisent l'un de vos alias git.

    Sur ma machine, j'obtiens le résultat suivant en utilisant cette recherche. Remarquez la ligne supplémentaire en haut, qui n'était pas présente dans le résultat précédent :

    alias debugmk="echows;gtb;${ws}/make ${DEBUG_OPTIONS}"  
    alias gts="git status"  
    alias gtd="git diff"  
    alias gtpull="git pull"  
    alias gtb="git branch"  
    alias gtpush="git push"  
    alias gtpullmk="gtpull;./make all"  
    alias gtst="git stash"  
    alias gtstash="gtst save"  
    alias gtstlist="gtst list"  
    alias gtctall="runformatter;git commit -a"

  1. Enfin, selon la commande que vous trouvez la plus utile (ou même les deux si elles sont toutes deux utiles), vous pouvez créer un nouvel alias pour lister tous les alias liés à git :

    alias allgit="alias | grep gt"

2voto

Michael Zhou Points 167

Vous pouvez utiliser les modules d'achèvement programmables. compgen avec la commande a option. La syntaxe est la suivante :

compgen [option] [word]

Le site a énumère toutes les aliases y word correspond à tous les alias commençant par ces caractères. Donc, pour répondre à votre question pour lister tous les alias git :

compgen -a gt

Plus d'informations peuvent être trouvées avec cette commande :

help compgen

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X