On Tue, 20 Dec 2022 at 21:53, The Wanderer <wande...@fastmail.fm> wrote:
> On 2022-12-20 at 05:37, David wrote:
> > On Tue, 20 Dec 2022 at 21:10, The Wanderer <wande...@fastmail.fm> wrote:
> >> On 2022-12-20 at 02:51, Thomas Schmitt wrote:

> >>> This contradicts the promises of man grep about option -m.

> >> It does seem to, at least at a glance - but I think I've figured
> >> out what's going on, and it's actually consistent with the option
> >> set you gave.
> >
> > [...]
> >
> > Hi,
> >
> > Slightly offtopic rambling ...
> >
> > I haven't looked at the 'grep' part of the above expression, but
> > I assume that its output lines look something like:
> > 100:CD001
> >
> > If that is the case, then awk does not need any assistance
> > from 'expr' or 'sed' (and even not from 'grep' if we were not
> > searching a binary file).
> >
> > Short demo:
> > $ echo 100:CD001 | awk 'BEGIN { FS=":" } /CD001/ { print $1 - 50 }'
> > 50
>
> If you replace the "echo 100:CD001" with "echo -e
> '100:CD001\n200:CD001'" (not sure if that syntax is portable to all
> shells, but it works in my version of bash), this does print '50' and
> '150' on consecutive lines - which (if I'm not mistaken) matches the
> behavior of the original pipeline, but is not what is actually desired
> here.
>
> > I only write this because I just magine how poor old 'awk' feels:
> > "don't embed me in this pipelines and subshells and unnecessary
> > commands, I can do all that stuff myself without any help!!".
>
> Because of the above, it looks like a pipeline may still be necessary
> here, to filter it down to just the first number being output. Unless
> awk has another feature that would let us do that limiting internally too?

Fair point. Thanks for noticing my laziness. :)

But 'awk' does indeed have vast powers, that are sadly very overlooked
in modern times:

$ echo -e '100:CD001\n200:CD001' | awk 'BEGIN { FS=":" } /CD001/ &&
NR==1 { print $1 - 50 }'
50

And I'm not anything like an 'awk' expert.

I just like to share what little knowledge I have because it is a bit
sad when cool tools fall out of fashion.

Reply via email to