Yes, awk can handle it except for maybe very large files. I was trying to keep it restricted to grep, grep is already counting matches with -m but maybe GNU views this direction as becoming too programmatic from what the original vision of grep is?
awk '{if($0~/^[ \t\f#]+/)print $0;else exit}' gen_ent.bsh Thanks anyway, +AMD On Thu, Aug 31, 2017 at 10:53 AM, <arn...@skeeve.com> wrote: > Adam Danischewski <adam.danischew...@gmail.com> wrote: > > > I've been writing parsers and it would be really nice if grep could do > the > > following: > > > > *grep --quit-nm 1 -Pno "^[ \t\f]*#.*$" <(sed -n '2,$p' gen_ent.bsh)* > > > > If you: > > *grep -m 1 -Pno "^[ \t\f]*#.*$" <(sed -n '2,$p' gen_ent.bsh)* > > > > Only the first match of the header block gets printed, yet it would be > nice > > if grep in O(n), could simply be on the look out for the first failure to > > match the -o context and quit at --quit-nm non-match occurrences. > > I may be misunderstanding what you want, but something like > > awk '/pattern to match/ { print ; continue } > { exit 0}' file > > might do what I think you want - exit on first non match. > > If gawk can do the same matching you're doing with grep -Pno, that > is a different question. > > HTH, > > Arnold >