[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#32704: Can grep search for a line feed and a null character at the s
From: |
Eric Blake |
Subject: |
bug#32704: Can grep search for a line feed and a null character at the same time? |
Date: |
Sat, 15 Sep 2018 12:06:47 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 |
On 9/15/18 11:43 AM, address@hidden wrote:
Thank you for your messages.
It is possible I did not understand correctly your messages, because
grep finds hex sequences with the “-Pa” options at least.
grep -P introduces a completely different regex engine, with its own
quirks. As such, it does introduce different rules on backslash
sequences accepted.
Examples—“input.txt” contains, from the file system, for example
“\xFF\xFE\x0D\x00\x0A\x00\x74\x00\x65\x00\x73\x00\x74\x00\x0D\x00\x0A\x00\x74\x00\x65\x00\x73\x00\x74\x00\x5F\x00\x74\x00\x77\x00\x6F\x00\x0D\x00\x0A\x00”:
grep -Pa '\x00' input.txt
→ found
grep -Pza '\x0A' input.txt
→ found
grep -Pa '\x0A\x00' input.txt
This will never match - when you are not using -z, there are no \x0A in
the input stream (they have all been consumed by grep parsing one line
at a time, ending at \x0A). Instead, you'll want to search for '^\x00'
or '\x00$' for a pattern anchored to a line transition, to find patterns
where newline was next to NUL.
grep -Pza '\x0A\x00' input.txt
→ not found for the both
Similarly, when you are using -z, there are no \x00 in the input stream
(they have all been consumed by grep parsing one NUL-terminated record
at a time, ending at \x00). Instead, you'll want to search for '^\x0a'
or '\x0a$' for a pattern anchored to a record transition, to find
patterns where newline was next to NUL.
But is it at least possible to find “\x0A\x00” with grep?
If you bend the rules by throwing -P into the mix, yes :)
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- bug#32704: Can grep search for a line feed and a null character at the same time?, 21naown, 2018/09/11
- bug#32704: Can grep search for a line feed and a null character at the same time?, Eric Blake, 2018/09/11
- bug#32704: Can grep search for a line feed and a null character at the same time?, Paul Eggert, 2018/09/11
- bug#32704: Can grep search for a line feed and a null character at the same time?, Eric Blake, 2018/09/11
- bug#32704: Can grep search for a line feed and a null character at the same time?, 21naown, 2018/09/15
- bug#32704: Can grep search for a line feed and a null character at the same time?,
Eric Blake <=
- bug#32704: Can grep search for a line feed and a null character at the same time?, 21naown, 2018/09/15
- bug#32704: Can grep search for a line feed and a null character at the same time?, Assaf Gordon, 2018/09/15
- bug#32704: Can grep search for a line feed and a null character at the same time?, Eric Blake, 2018/09/15
- bug#32704: Can grep search for a line feed and a null character at the same time?, 21naown, 2018/09/17