grep weirdness - matching space character

Christopher Faylor cgf-no-personal-reply-please@cygwin.com
Tue Sep 26 13:46:00 GMT 2006


On Tue, Sep 26, 2006 at 11:16:42AM +0100, The Blog User wrote:
>I am really struggling to understand what I am doing wrong here.
>
>I have a log file with a line that looks like this:
>
>++ 04:51:32 All 94 items succeeded
>
>The binary data for that line is this:
>
>2B 2B 20 30 34 3A 35 31 3A 33 32 20 41 6C 6C 20 39 34 20 69 74 65 6D 73 20
>73 75 63 63 65 65 64 65 64 0A
>
>using grep and tail (versions below) I am failing to match that line
>
>$ tail -1 /path/to/file/the.log | grep -a "All \d*.items succeeded"
>
>however if I insert 3 (why three?) dots (or a .*) between 'All' and '\d' I
>get a match, what is happening ?

grep doesn't recognize \d as matching a number so it is not going to do
what you think it does.  All...  will skip over the 94 above and match
zero occurrences of \d so that's why that works.

Use [0-9]* instead of \d.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list