List Info

Thread: Re: grep -r doesn't work for me




Re: grep -r doesn't work for me
country flaguser name
United States
2008-02-23 12:25:39
Bob, thanks for the help.  You are right about the missing
directory 
argument.  I missed that earlier.  By supplying
".", it eliminated the 'Not 
enough space' error.  I finally got it to the point where I
got it mostly 
working, but I discovered one thing about the port that may
be good for the 
unix environment, but doesn't work for Windows:  The
filename pattern 
matching is case sensitive.  In other words, if I had a file
named 
"MyFile.txt" and I searched for
"my*.txt" (without the quotes in both 
cases), it would fail to find it, while if I searched for
"My*.txt" it would 
find it.  I understand that in the unix world filenames are
case-sensitive, 
but in the Windows world they are not.  Thus, file pattern
matching should 
not be case-sensitive for the Windows implementation.

"Bob Proulx" <bobproulx.com> wrote in
message 
news:mailman.7817.1203760771.18990.help-gnu-utilsgnu.org...
> Mickey Ferguson wrote:
>> My problem is that it just doesn't work for me. 
(I'm using XP SP2.)
>> When I use the -r switch, I get a 'Not enough
space' error.
>
> That does seem strange.
>
>> ->grep -rl --include=*.ini Change
>> grep: (standard input): Not enough space
>
> First things first.  You are missing a directory
argument in which to
> recurse.  Because grep does not have any file/directory
arguments to
> process it defaults to reading standard input.  Using
-r does not make
> sense with regards to standard input.
>
> Fix this first by giving grep a directory to recurse
into.  When using
> the -r option it is typical to use the '.' directory. 
Try this:
>
>  grep -rl --include=*.ini Change .
>
>> I've created an alias in my command processor (4nt)
language, that
>
> The typical way to do this would be to use 'find'.
>
>  find . -name "*.ini" -exec grep -l Change {}
+
>
> The {} is replaced by find with a maximum list of
filenames and the
> '+' terminates the command.
>
>> ... This works fine, but I'd rather figure out what
I'm doing wrong
>> above with the -r switch.
>
> Admirable.  Looks like it is a bug in the port to me. 
It doesn't give
> that error in GNU grep's native GNU environment.  But
your results
> sound as if the code is trying to recurse on stdin and
failing.  That
> should be reported to the Cygwin folks.
>
> Bob
>
> 




Re: grep -r doesn't work for me
country flaguser name
United States
2008-03-13 18:19:39
Does anyone have a solution to the file case-sensitivity
problem I'm 
experiencing in grep?  Filenames should NOT be
case-sensitive in Windows. 
Is there something I can do to fix this, either with
configuration or a 
command-line switch or something else?

"Mickey Ferguson" <ReneeMickey.Fergusonverizon.net> wrote in message 
news:mailman.7839.1203820601.18990.bug-gnu-utilsgnu.org...
> Bob, thanks for the help.  You are right about the
missing directory 
> argument.  I missed that earlier.  By supplying
".", it eliminated the 
> 'Not enough space' error.  I finally got it to the
point where I got it 
> mostly working, but I discovered one thing about the
port that may be good 
> for the unix environment, but doesn't work for Windows:
 The filename 
> pattern matching is case sensitive.  In other words, if
I had a file named 
> "MyFile.txt" and I searched for
"my*.txt" (without the quotes in both 
> cases), it would fail to find it, while if I searched
for "My*.txt" it 
> would find it.  I understand that in the unix world
filenames are 
> case-sensitive, but in the Windows world they are not. 
Thus, file pattern 
> matching should not be case-sensitive for the Windows
implementation.
>
> "Bob Proulx" <bobproulx.com> wrote in
message 
> news:mailman.7817.1203760771.18990.help-gnu-utilsgnu.org...
>> Mickey Ferguson wrote:
>>> My problem is that it just doesn't work for me.
 (I'm using XP SP2.)
>>> When I use the -r switch, I get a 'Not enough
space' error.
>>
>> That does seem strange.
>>
>>> ->grep -rl --include=*.ini Change
>>> grep: (standard input): Not enough space
>>
>> First things first.  You are missing a directory
argument in which to
>> recurse.  Because grep does not have any
file/directory arguments to
>> process it defaults to reading standard input. 
Using -r does not make
>> sense with regards to standard input.
>>
>> Fix this first by giving grep a directory to
recurse into.  When using
>> the -r option it is typical to use the '.'
directory.  Try this:
>>
>>  grep -rl --include=*.ini Change .
>>
>>> I've created an alias in my command processor
(4nt) language, that
>>
>> The typical way to do this would be to use 'find'.
>>
>>  find . -name "*.ini" -exec grep -l
Change {} +
>>
>> The {} is replaced by find with a maximum list of
filenames and the
>> '+' terminates the command.
>>
>>> ... This works fine, but I'd rather figure out
what I'm doing wrong
>>> above with the -r switch.
>>
>> Admirable.  Looks like it is a bug in the port to
me.  It doesn't give
>> that error in GNU grep's native GNU environment. 
But your results
>> sound as if the code is trying to recurse on stdin
and failing.  That
>> should be reported to the Cygwin folks.
>>
>> Bob
>>
>>
>
>
> 




Re: grep -r doesn't work for me
user name
2008-03-13 23:54:22
Most of use got two copies of your message for some reason.

Mickey Ferguson wrote:
> Does anyone have a solution to the file
case-sensitivity problem I'm
> experiencing in grep?

I take it the 'find' suggestion I posted didn't work for
you?

> Filenames should NOT be case-sensitive in Windows.

You would probably have better luck asking MS-Windows
questions on an
MS-Windows specific mailing list.  Most of us here on the
GNU lists
probably won't know enough about MS-Windows to be able to
answer.

It is great that the GNU utilities are ported to your
platform and are
able to help you out there but of course we are primarily
concerned
about GNU utilities on GNU systems.  On GNU and Unix systems
filenames
are case sensitive.  So we just won't have your problem.

> Is there something I can do to fix this, either with
configuration or a 
> command-line switch or something else?

Not that I expect you to take me up on this but the best
advice I can
give you is to use a GNU system.

  http://www.gnu.org/links/links.html#FreeGNULinuxDis
tributions

You can't expect any other advice when you ask questions on
a GNU
mailing list can you?   I mean if
you were asking MS-Windows
questions on a Mac mailing list wouldn't you expect the
folks there to
suggest that you use a Mac?  I would.  It just naturally
follows.

You said in your mail to help-gnu-utils that you were using
Cygwin.  I
know that Cygwin has a process for handling filename case
issues.  The
best place to get help for your question about the Cygwin
port is on
the Cygwin mailing lists.

  http://cygwin.com/lists.
html

Good luck!
Bob


> "Mickey Ferguson"
<ReneeMickey.Fergusonverizon.net> wrote in
message 
> news:mailman.7839.1203820601.18990.bug-gnu-utilsgnu.org...
> > Bob, thanks for the help.  You are right about the
missing directory 
> > argument.  I missed that earlier.  By supplying
".", it eliminated the 
> > 'Not enough space' error.  I finally got it to the
point where I got it 
> > mostly working, but I discovered one thing about
the port that may be good 
> > for the unix environment, but doesn't work for
Windows:  The filename 
> > pattern matching is case sensitive.  In other
words, if I had a file named 
> > "MyFile.txt" and I searched for
"my*.txt" (without the quotes in both 
> > cases), it would fail to find it, while if I
searched for "My*.txt" it 
> > would find it.  I understand that in the unix
world filenames are 
> > case-sensitive, but in the Windows world they are
not.  Thus, file pattern 
> > matching should not be case-sensitive for the
Windows implementation.
> >
> > "Bob Proulx" <bobproulx.com> wrote in message 
> >
news:mailman.7817.1203760771.18990.help-gnu-utilsgnu.org...
> >> Mickey Ferguson wrote:
> >>> My problem is that it just doesn't work
for me.  (I'm using XP SP2.)
> >>> When I use the -r switch, I get a 'Not
enough space' error.
> >>
> >> That does seem strange.
> >>
> >>> ->grep -rl --include=*.ini Change
> >>> grep: (standard input): Not enough space
> >>
> >> First things first.  You are missing a
directory argument in which to
> >> recurse.  Because grep does not have any
file/directory arguments to
> >> process it defaults to reading standard input.
 Using -r does not make
> >> sense with regards to standard input.
> >>
> >> Fix this first by giving grep a directory to
recurse into.  When using
> >> the -r option it is typical to use the '.'
directory.  Try this:
> >>
> >>  grep -rl --include=*.ini Change .
> >>
> >>> I've created an alias in my command
processor (4nt) language, that
> >>
> >> The typical way to do this would be to use
'find'.
> >>
> >>  find . -name "*.ini" -exec grep -l
Change {} +
> >>
> >> The {} is replaced by find with a maximum list
of filenames and the
> >> '+' terminates the command.
> >>
> >>> ... This works fine, but I'd rather figure
out what I'm doing wrong
> >>> above with the -r switch.
> >>
> >> Admirable.  Looks like it is a bug in the port
to me.  It doesn't give
> >> that error in GNU grep's native GNU
environment.  But your results
> >> sound as if the code is trying to recurse on
stdin and failing.  That
> >> should be reported to the Cygwin folks.
> >>
> >> Bob
> >>
> >>
> >
> >
> > 
> 
> 
> 



[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )