Journal Un grep recursif en shell

Posté par  (site web personnel) .
Étiquettes : aucune
0
28
déc.
2004
Pour tout ceux qui bosse sur les UNIX historiques (parce y'a pas la petite option -r et d'autres auxquelles ont est depuis longtemps accros ...)

C'est juste pour se faciliter la vie sous forme de fonction à charger dans son .profile. Voici le code à ajouter :


rgrep ()
{
unset last beginning
if [ $# -gt 1 ];then
last=`eval echo "\\\$$(($#))" `
beginning=`echo $@ | cut -d " " -f 0-$(($#-1)) `
elif [ $# -eq 1 ]; then
last=$1
else
echo "Usage: rgrep MOTIF"
return 1
fi

find $PWD -exec grep $beginning $last {} \;
return $?
}


vla, ça marche très bien sur KSH.

Pour la petite histoire, je suis assez fier de la ligne commençant par "last="
  • # relis toi gros naze !!!!

    Posté par  (site web personnel) . Évalué à -3.

    tout ceux qui bosse => tous ceux qui bossent

    BRAVO !!!! ça sait faire du shell mais alors ecrire sa langue natale !!!!

    GRRRRR
    • [^] # Re: relis toi gros naze !!!!

      Posté par  (site web personnel) . Évalué à -1.

      puis y'a pas que ça :/

      bouhhhhhh ... sniff ...

      auxquelles ont est => auxquelles on est

      Et ça à fait des études... Par respect pour mes ex-camarades je tairais le nom de mon école ....

      Bon mais le bout de code est pas mal ... mal vendu mais pas mal :)
      • [^] # Re: relis toi gros naze !!!!

        Posté par  (site web personnel) . Évalué à -1.

        De toute façon , j'm'en fout c'était juste pour avoir une historique sur le net ! NA !

        Finalement , chui énervé maintenant ! VLA c'est copyrither ! Re NA !

        Non mais qd même alors l'autre sous pretexte que je fais 3 f0te d'aurtografe.. NON MAIS ! OU VA T ON ?

        Allez fo partir monsieur, faut s'en aller du travail ....

        ===========> CLAP !
      • [^] # Re: relis toi gros naze !!!!

        Posté par  (site web personnel) . Évalué à 2.

        > Et ça à fait des études...
        "Et ça a fait des études".

        J'aime vraiment pas le ton de tes deux posts, alors qu'il proposait une fonction shell fort sympathique - et utile de surcroît -
    • [^] # Messieurs les moinsseurs

      Posté par  (site web personnel) . Évalué à 5.

      En tout cas merci à tous ceux qui soit par manque d'humour ou par envie de grimper en XP m'ont decendu en flêche dans les 3 commentaires précédents. Maintenant, mes commentaires sont à zéros. Pour aider les débutants sur le forum ça plus dur !

      Merci vous êtes bien urbain tous, ça donne envie de partager son travail.
      Quelqu'un sait s'il recrute chez M$, parce qu'avec des c... pareils
      • [^] # Re: Messieurs les moinsseurs

        Posté par  . Évalué à -3.

        bin ouais bienvenu sur linuxfr :-(
      • [^] # Re: Messieurs les moinsseurs

        Posté par  . Évalué à 5.

        C'est juste qu'un boulet qui poste 3 messages d'affilée un peu inutiles et en insultant l'auteur du journal, ca se fait flinguer direct. Meme pas le temps de voir que c'est justement l'auteur du journal qui fait une tentative d'humour maladroite :)

        PS : pas taper, moi j'arrive à peine, j'ai pas moinssé !
      • [^] # Re: Messieurs les moinsseurs

        Posté par  (site web personnel) . Évalué à 2.

        Tout le monde n'a pas compris la première fois que c'était la même personne qui postait l'astuce[1] et qui critiquait l'orthographe (cf le post juste au dessus par exemple ;) ).

        La première réaction, c'est de ce dire que c'est pas très sympa de la part de la personne qui critique, qui plus est poste trois fois de suite. Ça fait vraiment la personne qui s'acharne sur le posteur du journal. Voila pourquoi le moinssage sauvage.

        Maintenant, à moins que je ne me trompe, tu as déjà bien remonté d'après ce que j'ai pu voir :).

        Allez, c'est Noël (et des poussières) tu as de la chance, il me reste juste de quoi plusser tous tes commentaires de la page. Hop, pas de chichi.


        Et bonne année à tout le monde :D

        [1] Au passage, pourquoi tu n'as pas mis ça dans les astuces ? Je viens de penser à ça.
  • # ksh..

    Posté par  (site web personnel) . Évalué à 3.

    A propos, vu que tu en parles..
    ça fait un petit bout de temps que j'entends des gars utiliser ksh, mais honnêtement je n'en ai jamais compris ses atouts.

    Pour ma part, j'utilise zsh dont le système de completion et sa gestion des corrections des fautes de frappe me font gagner un temps formidable.
    Ai-je intérêt à tester ksh ? J'en doute, mais je suis tellement curieux.. :-)
    • [^] # Re: ksh..

      Posté par  . Évalué à 3.

      Ben au boulot j’ai régulièrement à administrer des serveurs en production tournant sous AIX et question shell, on n’a pas le choix c’est Ksh avec l’édition de la ligne de commande à la façon Vi.
      • [^] # Re: ksh..

        Posté par  (site web personnel) . Évalué à 6.

        > on n’a pas le choix c’est Ksh avec l’édition de la ligne de commande à la façon Vi.
        Bon, je suis de bonne humeur aujourd'hui, on va être gentil pour une fois:
        alias __A=`echo "\020"`   # up arrow = ^p = back a command
        alias __B=`echo "\016"`   # down arrow = ^n = down a command
        alias __C=`echo "\006"`   # right arrow = ^f = forward a character
        alias __D=`echo "\002"`   # left arrow = ^b = back a character
        alias __H=`echo "\001"`   # home = ^a = start of line
        
        set -o emacs
        
      • [^] # Re: ksh..

        Posté par  . Évalué à 2.

        moi aussi je suis sous AIX, et la complétion est obtenue par Esc-\, ce qui n'est pas très pratique. Tu ne saurais pas comment changer cela par hasard??

        Merci
    • [^] # Re: ksh..

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      à mon avis aucun.
      C'est juste que beaucoup d'écoles utilisent encore ksh comme shell (souvent unique) par défaut et que KoRn est un groupe de musique à la mode (cf http://www.kornshell.com/fun/(...)) .
    • [^] # Re: ksh..

      Posté par  . Évalué à 2.

      C'est une référence en matière de programation, beaucoup de chose viennent de lui:

      zcat /usr/share/doc/bash/changelog.gz | grep -i ksh

      En plus, il est maintenant libre.
    • [^] # Re: ksh..

      Posté par  (site web personnel) . Évalué à 2.

      >Ai-je intérêt à tester ksh ?

      Non à priori, car bash est bien plus conviviale et puissant

      Cependant, les UNIX à papa (HP-UX, AIX, Solaris) utilise par défaut ce shell et la plupart des entreprises ne change pas ce réglage pour, ainsi, avoir une norme déjà dans la norme de ce qui est fournie. Donc si tu travaille sur un UNIX autre que linux/FreeBSD etc... cela te sera utile de connaitre les base de ce shell (qui ne sont pas très éloignées du bash)

      Désolé encore pour le ton avec lequel je me suis parlé mais là c'en était trop, il fallait que quelqu'un me le dise. Je saoule assez les gens pour qu'il n'écrivent pas en SMS dans leurs posts, alors autant de faute dans un des miens, il fallait réagir :)
  • # grep en couleur

    Posté par  . Évalué à 4.

    == glark

    j'adore :D

    pour ceux qui font du grep pour faire des recherches dans du code source C -> cscope
  • # sympa. voici une maniere de faire pour chopper l'avant dernier argument

    Posté par  . Évalué à 1.

    arrivé a la ligne find $PWD  .... 
    on se retrouve avec trois variables qui contiennent:
    dans last le dernier argument
    dans last2 l'avant dernier argument 
    dans beginning les autres
    ...
    
    ^__^
    sisi ... ca peut etre utile...
    
    
    @+ 
    
    rgrep ()
    {
           unset last last2 beginning
           if [ $# -gt 1 ];then
             last=`eval echo '$'$(($#))`
             last2=`eval echo '$'$(($#-1))`
             beginning=`echo $@ | cut -d " " -f 0-$(($#-1)) `
           elif [ $# -eq 1 ]; then
             last=$1
           else
             echo "Usage: rgrep MOTIF"
             return 1
           fi
           find $PWD -exec grep $beginning $last {} \;
           return $?
    }
    
    • [^] # Re: relis-toi, gros naze !

      Posté par  . Évalué à 1.

      t'ention j'me parle a moi meme, hein, me moinssez pas !! ^__^
      rgrep ()
      {
             unset last last2 beginning
             if [ $# -gt 2 ];then
               last=`eval echo '$'$(($#))`
               last2=`eval echo '$'$(($#-1))`
               beginning=`echo $@ | cut -d " " -f 0-$(($#-1)) `
             elif [ $# -eq 2 ]; then
               last2=$1
               last=$2
             elif [ $# -eq 1 ]; then
               last=$1
             else
               echo "Usage: rgrep MOTIF"
               return 1
             fi
             find $PWD -exec grep $beginning $last {} \;
             return $?
      }
      

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.