bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#30451: I found problem not solved to my grep


From: Paul Jackson
Subject: bug#30451: I found problem not solved to my grep
Date: Wed, 14 Feb 2018 01:34:14 -0600

I believe that this is a problem with using shell quoting and spacing.

The following code works better for me:

========================
g()
{
if [ -n "$2" ]
then
 i=
 for s in $2
 do
        if [ -n "$i" ]
        then
            i="$i --include=*.$s"
        else
            i="--include=*.$s"
        fi
 done
 else
        i='--include=*.txt --include=*.ini --include=*.*sh --include=*.c*
--include=*.h --include=*.js --include=*.reg'
fi
grep -P -e "$1" -r $i
}
========================

The two changes I made:
1) Avoid putting a space at the front of the first "--include=*.$s" argument.
2) Double quote, not escaped single quote, the "$1" parameter to grep.

The parameter "  --include=*.ini" was not a valid "--include" argument to
grep; rather it looked like a filename to grep, as its first character was a 
space.

The escaped single quotes around the "$1" parameter meant that you were
not looking for the three character pattern "sys", but rather for the five
character pattern "'sys'" (which is less likely to have appeared in your
test data.)

-- 
                Paul Jackson
                address@hidden





reply via email to

[Prev in Thread] Current Thread [Next in Thread]