Quoting Mike Miller <mbmiller+l at gmail.com>:

> I'm not sure of exactly what your issue is.  I'm thinking you need  
> the "--", so I made a script with that, exactly like this:
>
>
> -------begin script on next line---------
> #!/bin/bash
>
> PATTERN=$1
>
> grep -Eic -- "$PATTERN"
> -------end script on previous line---------
>
>
> And I ran it:
>
>
> $ echo -e "-testa\n-testb\nblah\nfoo\nbar\ntest\na-test" | ./script -test
> 3
>
>
> That's the right answer.  Note that if you don't have a filename,  
> you have to grep from stdin, which is what I did.
>
> Mike
>

Thank you Mike-

Not sure what the problem is either. I've had a couple of issues with  
egrep/grep on Red Hat.

Again, I do appreciate the follow up.

SDA


>
> On Fri, 6 Dec 2013, canito at dalan.us wrote:
>
>> In the process of writing a script which I would like to count the  
>> number matched patterns (command line parameters).
>>
>> The issue I am running into using grep is that the string has a  
>> dash in front, and it throws an error.
>>
>> E.g:
>>
>> ./script -test
>>
>> PATTERN=$1
>>
>> egrep -ic $PATTERN --> egrep: invalid option -- 't'
>>
>> awk and egrep work using a file, but not on a variable:
>>
>> EXAMPLE=`awk '/test/ { nlines++ } {print nlines}' $PATTERN`
>>
>> awk: cmd. line:1: fatal: cannot open file `-test' for reading (No  
>> such file or directory)
>>
>> I know using and if command works, so am I just over doing it? What  
>> am I doing wrong?
>>
>> if [[ $PATTERN == "-test" ]; then
>>
>> Thanks in advanced!
>>
>> Saul David Alanis
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list