Subject: Re: bug#65416: Feature request: include first line of file in output

From: [email-masked]
Date: Mon, 21 Aug 2023 12:37:12 -0600

Gawk 4.0.2 is 11 years old. Try timing the current version,
I'll bet it's faster.  And it solves your problem NOW,
instead of waiting for a feature that the grep developers
aren't likely to add.

My two cents of course.

Arnold

Daniel Green <[email-masked]> wrote:

> That works, as well as the Perl version I've been using:
>
>     perl -ne 'print if ($. == 1 || /pattern/)'
>
> But timings for a real-life example (3GB file with ~16m lines, CentOS 7)
> show the problem:
>
>     grep (v2.20):    ~1.15s
>     perl (v5.36.1):  ~4.48s
>      awk (v4.0.2):  ~10.81s
>
> Admittedly grep is just searching in those timings, but I suspect it could
> accomplish the full task with a minimal decrease in speed.
>
> Dan
>
> On Mon, Aug 21, 2023 at 12:57 PM <[email-masked]> wrote:
>
> > Daniel Green <[email-masked]> wrote:
> >
> > > I'm frequently searching CSV files with 20-30 columns, and when there's a
> > > hit it can be hard to know what the columns are. An option to also print
> > > the first line of a file (either always, or only if that file had a match
> > > to the pattern) in addition to any hits would be nice.
> > >
> > > Thanks,
> > > Dan
> >
> > It sounds like awk would be a better tool:
> >
> >         awk 'FNR == 1 || /pattern/' files ...
> >
> > should do the trick.
> >
> > HTH,
> >
> > Arnold
> >