指定したディレクトリから特定の文字列を含むファイルを検索する

#!/bin/sh
#search.sh [-l] keyword dirname

lflug=0
if [ "$1" = "-l" ]; then
    lflug=1
    shift
fi

dir=$2
[ -z "$dir" ] && dir="."
[ -z "$1" ] && exit 1

for filename in `find $dir`; do
    if ! expr "$filename" : '/dev' > /dev/null && \
       ! expr "$filename" : '/proc' > /dev/null ; then
        str=`grep "$1" "$filename"`
        if [ $? -eq 0 ]; then
            if [ $lflug -eq 1 ]; then
                echo "$filename"
            else
                echo "$filename:    $str"
                echo "--"
            fi
        fi
    fi
done
$ ./search.sh  if      
./rename.sh:    if [ "$1" = "-f" ]; then
    shift
    if expr "$filename" : '.*[A-Z]' >/dev/null; then
        if [ $arg = "-i" ]; then
            if [ "$answer" = "y" -o "$answer" = "Y" ]; then
--
./search.sh:    if [ "$1" = "-l" ]; then
    shift
    if ! expr "$filename" : '/dev' > /dev/null && \
        if [ $? -eq 0 ]; then
            if [ $lflug -eq 1 ]; then
--
./trash.sh:            if [ "$answer" = "y" -o "$answer" = "Y" ]; then
        if [ "$answer" = "y" -o "$answer" = "Y" ]; then
--