Re: grep: Listing files without lines matching a pattern

Norihiro Tanaka <[email protected]> Wed, 12 Nov 2014 23:17:03 +0900
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
On Wed, 12 Nov 2014 08:41:12 +0100
Michael Grunewald <[email protected]> wrote:
> My intent by using *-l* and *-v* was to achieve the effect of *-L*,
> listing files without lines matching a pattern. 

No.  -L is different from -lv, and -Lv is also different from -l.

$ printf 'a\n' > in_a
$ printf 'b\n' > in_b
$ printf 'a\na\n' > in_aa
$ printf 'a\nb\n' > in_ab

$ grep -l a in_a in_b in_aa in_ab
in_a
in_aa
in_ab

Files which a line matches `a'.

$ grep -lv a in_a in_b in_aa in_ab
in_b
in_ab

Files which a line does not match `a'.

$ grep -vl a in_a in_b
in_b
in_ab

Same above.

$ grep -L a in_a in_b in_aa in_ab
in_b

Files which all lines do not match `a'.

$ grep -Lv a in_a in_b in_aa in_ab
in_a
in_aa

Files which all lines match `a'.

$ env LC_ALL=C grep --version | head -1
grep (GNU grep) 2.20