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.