[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21414: -F string with tailing newline always matches
From: |
Jim Meyering |
Subject: |
bug#21414: -F string with tailing newline always matches |
Date: |
Fri, 4 Sep 2015 21:29:58 -0700 |
On Fri, Sep 4, 2015 at 8:45 PM, Paul Eggert <address@hidden> wrote:
> Jim Meyering wrote:
>>
>> I too find this behavior surprising:
>>
>> $ seq 3|grep -F xxx$'\n'
>> 1
>> 2
>> 3
>>
>> This feels like a bug, since it's an artifact of how grep accumulates
>> multiple keys internally: it uses newline as the separator
>> (http://git.savannah.gnu.org/cgit/grep.git/tree/src/grep.c#n2308).
>> Including a literal newline in the search string conflicts with that.
>
>
> It's not an artifact; it's intended behavior. POSIX says that xxx$'\n'
> (which expands to three 'x's followed by a newline) is a pattern_list, not a
> pattern. A pattern_list is defined to be a series of patterns separated by
> newlines (not terminated by newlines), so that pattern_list has two
> patterns, xxx and the empty pattern.
Thanks for explaining. Looks like I'd better reread that part of the spec.