Erik Steffl <[EMAIL PROTECTED]> writes: > find . -type f |xargs grep char_string /dev/null
I use find . -type f | xargs mogrep $1 where $1 is the expression to search for, and "mogrep" (below) knows what to do with binary and compressed files. -chris #!/bin/sh REGEXP=$1 PRGNAME=`basename $0` TMP=/tmp/${PRGNAME}.$$ shift for i in $* do SKIP=no GZIP=no case $i in *.gz) GZIP=yes ;; *) ;; esac if [ ${GZIP} = yes ]; then if ! zcat $i | file - | grep -i text >> /dev/null 2>&1; then SKIP=yes fi else if ! file $i | grep -i text >> /dev/null 2>&1; then SKIP=yes fi fi if [ ${SKIP} = no ]; then GREP=grep if [ ${GZIP} = yes ]; then GREP=zgrep fi ${GREP} -i ${REGEXP} $i > ${TMP} if [ $? -eq 0 ]; then printf "$i:" cat ${TMP} rm ${TMP} fi else # printf "'$i': Not a text file\n" 1>&2 printf hello >> /dev/null fi done