Re: J'ai besoin d'un exemple de cde de recherche

Top Page

Reply to this message
Author: Emmanuel Rouat
Date:  
To: ebo5
CC: La Guilde
Subject: Re: J'ai besoin d'un exemple de cde de recherche
ebo5@??? wrote:
>
> Le 27 novembre, Anne a écrit :
> > Je recherche par exemple le mot '*masq*' dans tous les fichiers du
> > répertoire /home
>
> À moi, à moi ;-).
>
>         find /home -type f -print0 | xargs --null grep -l 'masq'

>
> Si tu ne mets pas le -type f, tu auras plein de messages d'erreur à
> cause des répertoires. Les -print0 et -null c'est pour le fichiers ayant
> des espaces dans lesurs noms (par exemple dans le desktop par défaut de
> Mandrake).



Cool. Ca me permet de resoudre un des derniers petits pb de ma fonction
de-la-mort:

function fstr()  # find pattern in file(s)
{
    OPTIND=1
    local case=""
    local usage="fstr: find string in files.
Usage: fstr [-i] \"pattern\" [\"filename pattern\"] "
    while getopts :it opt
    do
        case "$opt" in
        i) case="-i " ;;
        *) echo "$usage"; return;;
        esac
    done
    shift $(( $OPTIND - 1 ))
    if [ "$#" -lt 1 ]; then
        echo "$usage"
        return;
    fi
    local SMSO=$(tput smso)
    local RMSO=$(tput rmso)
    find . -type f -name "${2:-*}" -print0 | xargs --null grep -sn ${case} "$1" | \
sed "s/$1/${SMSO}\0${RMSO}/gI" | more
}


Ca commence a etre fun.....

On peut faire des trucs style: fstr -i 'FOO.*BAR' '*.c'


manu