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