• [^] # Re: grep et find

    Posté par . En réponse à la dépêche Des alternatives à grep, ls et find. Évalué à 2.

    Ça a l'air bizarre à utiliser, on ne lance pas la commande et des résultats s'affichent sur la sortie standard, mais on passe par une interface en ncurses

    C’est le mode par défaut, mais il y a aussi une interface orientée ligne, interactive (-l) ou non (-L -Xmotif, où X indique le type de motif à rechercher).

    Je dois rater quelque chose, tu l'utilises comment ?

    D’abord, construction de l’index (à répéter de temps en temps pour avoir un index à jour — on peut aussi mettre à jour l’index à chaque invocation mais on perd un peu l’intérêt de l’outil d’après moi) :

    $ cscope -bqR
    

    Puis, mettons par exemple que je cherche la définition d’une fonction C donnée (l’option -d empêche la mise à jour de l’index, si on a déjà un index à jour grâce à la commande précédente) :

    $ cscope -d -L -1start_pinentry
    agent/call-pinentry.c start_pinentry 272 start_pinentry (ctrl_t ctrl)
    

    Ou que je cherche les appels à cette fonction :

    $ cscope -d -L -3start_pinentry
    agent/call-pinentry.c agent_askpin 1010 rc = start_pinentry (ctrl);
    agent/call-pinentry.c agent_get_passphrase 1213 rc = start_pinentry (ctrl);
    agent/call-pinentry.c agent_get_confirmation 1325 rc = start_pinentry (ctrl);
    agent/call-pinentry.c agent_show_message 1398 rc = start_pinentry (ctrl);
    agent/call-pinentry.c agent_popup_message_start 1468 rc = start_pinentry (ctrl);
    agent/call-pinentry.c agent_clear_passphrase 1577 rc = start_pinentry (ctrl);
    

    (Dans certaines bases de code, grep ou n’importe quel programme similaire pourrait aussi faire la distinction entre la définition d’une fonction et ses appels, parce que certains projets utilisent la convention suivante pour définir une fonction :

    void
    ma_fonction (void)
    

    où le nom de la fonction est toujours en début de ligne. Mais ce n’est pas une convention universelle — et ça ne marche que pour les définitions de fonction.)