Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"Don't discount flying pigs before you have good air defense." -- jvh@clinet.FI


devel / comp.lang.awk / Re: Short version of Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)

SubjectAuthor
* Simplify an AWK pipeline?Robert Mesibov
+* Re: Simplify an AWK pipeline?Kaz Kylheku
|`- Re: Simplify an AWK pipeline?Kaz Kylheku
`* Re: Simplify an AWK pipeline?Janis Papanagnou
 `* Re: Simplify an AWK pipeline?Robert Mesibov
  +* Re: Simplify an AWK pipeline?Kenny McCormack
  |`* Re: Simplify an AWK pipeline?Janis Papanagnou
  | +* Re: Simplify an AWK pipeline?Robert Mesibov
  | |`* Re: Simplify an AWK pipeline?Janis Papanagnou
  | | `- Re: Simplify an AWK pipeline?Robert Mesibov
  | `* Nobody does that anymore... (Was: Simplify an AWK pipeline?)Kenny McCormack
  |  +- Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)Janis Papanagnou
  |  `* Short version of Re: Nobody does that anymore... (Was: Simplify anJanis Papanagnou
  |   `- Re: Short version of Re: Nobody does that anymore... (Was: Simplify anKenny McCormack
  `- Re: Simplify an AWK pipeline?Janis Papanagnou

1
Simplify an AWK pipeline?

<4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1502&group=comp.lang.awk#1502

  copy link   Newsgroups: comp.lang.awk
X-Received: by 2002:a05:6214:9cd:b0:63c:e916:a2cf with SMTP id dp13-20020a05621409cd00b0063ce916a2cfmr34574qvb.6.1692229738885;
Wed, 16 Aug 2023 16:48:58 -0700 (PDT)
X-Received: by 2002:a63:744f:0:b0:565:f628:e6dc with SMTP id
e15-20020a63744f000000b00565f628e6dcmr724323pgn.1.1692229737958; Wed, 16 Aug
2023 16:48:57 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.awk
Date: Wed, 16 Aug 2023 16:48:57 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=1.145.171.38; posting-account=otjK7AoAAAAOtkBkeky3H-U7ksxwNnpW
NNTP-Posting-Host: 1.145.171.38
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
Subject: Simplify an AWK pipeline?
From: robert.mesibov@gmail.com (Robert Mesibov)
Injection-Date: Wed, 16 Aug 2023 23:48:58 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2263
 by: Robert Mesibov - Wed, 16 Aug 2023 23:48 UTC

I'm hoping for ideas to simplify a duplicate-listing job. In this space-separated file "demo", fields 1 and 3 are codes unique to each record.

fld1 fld2 fld3 fld4 fld5
001 rose aa hat apple
002 pear bb hat apple
003 rose cc hat apple
004 shoe dd try tiger
005 worm ee law tiger
006 pear ff law tiger
007 pear gg hat apple
008 shoe hh cup heron
009 worm ii cup heron

To find the partial duplicate records which are identical except in those unique codes, I can parse "demo" twice like this:

awk 'FNR==NR {$1=$3=1; a[$0]++; next} {x=$0; $1=$3=1} a[$0]>1 {print x}' demo demo

which returns

001 rose aa hat apple
002 pear bb hat apple
003 rose cc hat apple
007 pear gg hat apple

I would like those 2 sets of partial duplicates (the rose-hat-apple set and the pear-hat-apple set) to be sorted alphabetically and separated, like this:

002 pear bb hat apple
007 pear gg hat apple

001 rose aa hat apple
003 rose cc hat apple

I can do that by piping the first AWK command's output to

sort -t" " -k2 | awk 'NR==1 {print; $1=$3=1; x=$0} NR>1 {y=$0; $1=$3=1; print $0==x ? y : "\n"y; x=$0}'

but this seems like a lot of coding for a result. I'd be grateful for suggestions on how to get the sorted, separated result in a single AWK command, if possible.

Re: Simplify an AWK pipeline?

<20230816174942.345@kylheku.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1503&group=comp.lang.awk#1503

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 864-117-4973@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Thu, 17 Aug 2023 00:59:20 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 67
Message-ID: <20230816174942.345@kylheku.com>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
Injection-Date: Thu, 17 Aug 2023 00:59:20 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1aa1e972d16a2b9e389dd8d4860af990";
logging-data="3678682"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18tOH6yUe9+8BZkIAiINTHwUwmqisykP4g="
User-Agent: slrn/1.0.3 (Linux)
Cancel-Lock: sha1:hztOarXGDm/FDI19IAL7hDf/wnM=
 by: Kaz Kylheku - Thu, 17 Aug 2023 00:59 UTC

On 2023-08-16, Robert Mesibov <robert.mesibov@gmail.com> wrote:
> I'm hoping for ideas to simplify a duplicate-listing job. In this space-separated file "demo", fields 1 and 3 are codes unique to each record.
>
> fld1 fld2 fld3 fld4 fld5
> 001 rose aa hat apple
> 002 pear bb hat apple
> 003 rose cc hat apple
> 004 shoe dd try tiger
> 005 worm ee law tiger
> 006 pear ff law tiger
> 007 pear gg hat apple
> 008 shoe hh cup heron
> 009 worm ii cup heron
>
> To find the partial duplicate records which are identical except in those unique codes, I can parse "demo" twice like this:
>
> awk 'FNR==NR {$1=$3=1; a[$0]++; next} {x=$0; $1=$3=1} a[$0]>1 {print x}' demo demo
>
> which returns
>
> 001 rose aa hat apple
> 002 pear bb hat apple
> 003 rose cc hat apple
> 007 pear gg hat apple
>
> I would like those 2 sets of partial duplicates (the rose-hat-apple
> set and the pear-hat-apple set) to be sorted alphabetically and
> separated, like this:
>
> 002 pear bb hat apple
> 007 pear gg hat apple
>
> 001 rose aa hat apple
> 003 rose cc hat apple

Like this?

$ txr group.tl < data
002 pear bb hat apple
007 pear gg hat apple

006 pear ff law tiger

001 rose aa hat apple
003 rose cc hat apple

008 shoe hh cup heron

004 shoe dd try tiger

009 worm ii cup heron

005 worm ee law tiger

$ cat group.tl
(flow (get-lines)
(sort-group @1 (opip (spl " ") [callf list* 1 3 4..:]))
(each ((group @1))
(put-lines group)
(put-line)))

Here's a dime kid, ...

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

Re: Simplify an AWK pipeline?

<ubk4of$3l2l6$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1504&group=comp.lang.awk#1504

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Thu, 17 Aug 2023 05:38:54 +0200
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <ubk4of$3l2l6$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 17 Aug 2023 03:38:55 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="35648cce75d18029cc7e431451ca3345";
logging-data="3836582"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/K86+lA3nSKiL32IVivmYq"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:SpoljvTTvwxuAcO5N7iM8LjcEb8=
In-Reply-To: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
X-Enigmail-Draft-Status: N1110
 by: Janis Papanagnou - Thu, 17 Aug 2023 03:38 UTC

On 17.08.2023 01:48, Robert Mesibov wrote:
> I'm hoping for ideas to simplify a duplicate-listing job. In this
> space-separated file "demo", fields 1 and 3 are codes unique to each
> record.
>
> fld1 fld2 fld3 fld4 fld5
> 001 rose aa hat apple
> 002 pear bb hat apple
> 003 rose cc hat apple
> 004 shoe dd try tiger
> 005 worm ee law tiger
> 006 pear ff law tiger
> 007 pear gg hat apple
> 008 shoe hh cup heron
> 009 worm ii cup heron
>
> To find the partial duplicate records which are identical except in
> those unique codes, I can parse "demo" twice like this:
>
> awk 'FNR==NR {$1=$3=1; a[$0]++; next} {x=$0; $1=$3=1} a[$0]>1 {print x}' demo demo
>
> which returns
>
> 001 rose aa hat apple
> 002 pear bb hat apple
> 003 rose cc hat apple
> 007 pear gg hat apple
>
> I would like those 2 sets of partial duplicates (the rose-hat-apple
> set and the pear-hat-apple set) to be sorted alphabetically and
> separated, like this:
>
> 002 pear bb hat apple
> 007 pear gg hat apple
>
> 001 rose aa hat apple
> 003 rose cc hat apple
>
> I can do that by piping the first AWK command's output to
>
> sort -t" " -k2 | awk 'NR==1 {print; $1=$3=1; x=$0} NR>1 {y=$0; $1=$3=1; print $0==x ? y : "\n"y; x=$0}'
>
> but this seems like a lot of coding for a result. I'd be grateful for
> suggestions on how to get the sorted, separated result in a single
> AWK command, if possible.

You can alternatively do it (e.g.) in one instance also like this...

{ k = $2 SUBSEP $4 SUBSEP $5 ; a[k] = a[k] RS $0 ; c[k]++ }
END { for(k in a) if (c[k]>1) print a[k] }

which is not (not much) shorter character wise but doesn't need the
external sort command, it is all in one awk instance (as you want),
and single pass. (I think the code is also a bit clearer than the
one you posted above, but YMMV.)

Janis

Re: Simplify an AWK pipeline?

<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1505&group=comp.lang.awk#1505

  copy link   Newsgroups: comp.lang.awk
X-Received: by 2002:a05:6214:18d0:b0:63c:f455:6942 with SMTP id cy16-20020a05621418d000b0063cf4556942mr6915qvb.9.1692305808726;
Thu, 17 Aug 2023 13:56:48 -0700 (PDT)
X-Received: by 2002:a17:902:f341:b0:1bf:cc5:7b53 with SMTP id
q1-20020a170902f34100b001bf0cc57b53mr173007ple.1.1692305808411; Thu, 17 Aug
2023 13:56:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.1d4.us!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.awk
Date: Thu, 17 Aug 2023 13:56:47 -0700 (PDT)
In-Reply-To: <ubk4of$3l2l6$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=1.145.186.50; posting-account=otjK7AoAAAAOtkBkeky3H-U7ksxwNnpW
NNTP-Posting-Host: 1.145.186.50
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com> <ubk4of$3l2l6$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
Subject: Re: Simplify an AWK pipeline?
From: robert.mesibov@gmail.com (Robert Mesibov)
Injection-Date: Thu, 17 Aug 2023 20:56:48 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2092
 by: Robert Mesibov - Thu, 17 Aug 2023 20:56 UTC

On Thursday, August 17, 2023 at 1:38:58 PM UTC+10, Janis Papanagnou wrote:

> You can alternatively do it (e.g.) in one instance also like this...
>
> { k = $2 SUBSEP $4 SUBSEP $5 ; a[k] = a[k] RS $0 ; c[k]++ }
> END { for(k in a) if (c[k]>1) print a[k] }
>
> which is not (not much) shorter character wise but doesn't need the
> external sort command, it is all in one awk instance (as you want),
> and single pass. (I think the code is also a bit clearer than the
> one you posted above, but YMMV.)
>
> Janis

Many thanks, Janis, that's very nice, but it depends on specifying the non-unique fields 2, 4 and 5. In the real-world cases I work with, there are 1-2 unique ID code fields and sometimes 300+ non-unique-ID fields (2, 4, 5...300+). That's why I replace the unique-ID fields with the arbitrary value "1" when testing for duplication.

Bob

Re: Simplify an AWK pipeline?

<ubm3cd$3mq58$1@news.xmission.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1506&group=comp.lang.awk#1506

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!xmission!nnrp.xmission!.POSTED.shell.xmission.com!not-for-mail
From: gazelle@shell.xmission.com (Kenny McCormack)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Thu, 17 Aug 2023 21:27:41 -0000 (UTC)
Organization: The official candy of the new Millennium
Message-ID: <ubm3cd$3mq58$1@news.xmission.com>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com> <ubk4of$3l2l6$1@dont-email.me> <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
Injection-Date: Thu, 17 Aug 2023 21:27:41 -0000 (UTC)
Injection-Info: news.xmission.com; posting-host="shell.xmission.com:166.70.8.4";
logging-data="3893416"; mail-complaints-to="abuse@xmission.com"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: gazelle@shell.xmission.com (Kenny McCormack)
 by: Kenny McCormack - Thu, 17 Aug 2023 21:27 UTC

In article <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>,
Robert Mesibov <robert.mesibov@gmail.com> wrote:
....
>Many thanks, Janis, that's very nice, but it depends on specifying the
>non-unique fields 2, 4 and 5. In the real-world cases I work with,
>there are 1-2 unique ID code fields and sometimes 300+ non-unique-ID
>fields (2, 4, 5...300+). That's why I replace the unique-ID fields with
>the arbitrary value "1" when testing for duplication.

1) Well, it seems like it shouldn't be too hard for you to retrofit your
hack ($1 = $3 = 1) into Janis's hack. FWIW, I would probably just set to
"" instead of 1.

2) You probably don't need to mess with SUBSEP. Your data seems to be OK
with assuming no embedded spaces (i.e., so using space as the delimiter is OK)
Note that SUBSEP is intended to be used as the delimiter for the
implementation of old-fashioned pseudo-multi-dimensional arrays in AWK, but
nobody uses that functionality anymore. Therefore, some AWK programmers
have co-opted SUBSEP as a symbol provided by the language to represent a
character that is more-or-less guaranteed to never occur in user data.

3) I don't see how Janis's solution implements your need for sorting.
Unless he is using the WHINY_USERS option. Or asort or asorti or
PROCINFO["sorted_in"] or ...

--
"Every time Mitt opens his mouth, a swing state gets its wings."

(Should be on a bumper sticker)

Re: Simplify an AWK pipeline?

<ubm48q$3u2k1$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1507&group=comp.lang.awk#1507

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Thu, 17 Aug 2023 23:42:50 +0200
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <ubm48q$3u2k1$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<ubk4of$3l2l6$1@dont-email.me>
<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 17 Aug 2023 21:42:50 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="35648cce75d18029cc7e431451ca3345";
logging-data="4131457"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18+iMU+DU7Q9avZTOD7UGl5"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:IKeIpaQdZVc9kBqbYZF+t1uEsuA=
In-Reply-To: <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
 by: Janis Papanagnou - Thu, 17 Aug 2023 21:42 UTC

On 17.08.2023 22:56, Robert Mesibov wrote:
> On Thursday, August 17, 2023 at 1:38:58 PM UTC+10, Janis Papanagnou wrote:
>
>> You can alternatively do it (e.g.) in one instance also like this...
>>
>> { k = $2 SUBSEP $4 SUBSEP $5 ; a[k] = a[k] RS $0 ; c[k]++ }
>> END { for(k in a) if (c[k]>1) print a[k] }
>>
>> which is not (not much) shorter character wise but doesn't need the
>> external sort command, it is all in one awk instance (as you want),
>> and single pass. (I think the code is also a bit clearer than the
>> one you posted above, but YMMV.)
>>
>> Janis
>
> Many thanks, Janis, that's very nice, but it depends on specifying
> the non-unique fields 2, 4 and 5. In the real-world cases I work
> with, there are 1-2 unique ID code fields and sometimes 300+
> non-unique-ID fields (2, 4, 5...300+). That's why I replace the
> unique-ID fields with the arbitrary value "1" when testing for
> duplication.

That was not apparent from your description. But defining the key
by constructing it is not mandatory, you can also define it using
elimination (as in your code); the point was what is following in
the code after the k=... statement.

Janis

>
> Bob
>

Re: Simplify an AWK pipeline?

<ubm5g7$3u7rt$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1508&group=comp.lang.awk#1508

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Fri, 18 Aug 2023 00:03:50 +0200
Organization: A noiseless patient Spider
Lines: 53
Message-ID: <ubm5g7$3u7rt$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<ubk4of$3l2l6$1@dont-email.me>
<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 17 Aug 2023 22:03:51 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="51cd4d17e930a66a2b77cbd7e9749d43";
logging-data="4136829"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19C6Qb6jBzUFWJa2PLpF/U7"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:oxd+9LiC5c7/yxhGUegewltQRA4=
In-Reply-To: <ubm3cd$3mq58$1@news.xmission.com>
X-Enigmail-Draft-Status: N1110
 by: Janis Papanagnou - Thu, 17 Aug 2023 22:03 UTC

On 17.08.2023 23:27, Kenny McCormack wrote:
> In article <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>,
> Robert Mesibov <robert.mesibov@gmail.com> wrote:
> ...
>> Many thanks, Janis, that's very nice, but it depends on specifying the
>> non-unique fields 2, 4 and 5. In the real-world cases I work with,
>> there are 1-2 unique ID code fields and sometimes 300+ non-unique-ID
>> fields (2, 4, 5...300+). That's why I replace the unique-ID fields with
>> the arbitrary value "1" when testing for duplication.
>
> 1) Well, it seems like it shouldn't be too hard for you to retrofit your
> hack ($1 = $3 = 1) into Janis's hack. FWIW, I would probably just set to
> "" instead of 1.

Yes, indeed. (See my other post.)

>
> 2) You probably don't need to mess with SUBSEP. Your data seems to be OK
> with assuming no embedded spaces (i.e., so using space as the delimiter is OK)
> Note that SUBSEP is intended to be used as the delimiter for the
> implementation of old-fashioned pseudo-multi-dimensional arrays in AWK, but
> nobody uses that functionality anymore. Therefore, some AWK programmers
> have co-opted SUBSEP as a symbol provided by the language to represent a
> character that is more-or-less guaranteed to never occur in user data.

Yes, SUBSEP is the default separation character for arrays and. Of
course you can use other characters (that require less text). Why
you think that "nobody uses that functionality anymore" is beyond
me; I doubt you have any evidence for that, so I interpret it just
as "I [Kenny] don't use it anymore.", which is fine by me.

>
> 3) I don't see how Janis's solution implements your need for sorting.

Sort can make sense in three different abstractions.

I interpreted the OP as doing the 'sort' just to be able to compare
the actual data set with the previous data set, to have them together;
this is unnecessary, though, with the approach I used with the keys
in associative array. Since the original data is also already sorted
my a unique numeric key and I sequentially concatenate the data it's
also not necessary to sort the data in that respect. So what's left
is the third thing that can be sorted, and that's the order of the
classes; that all, say, "pear" elements come before all "rose"
elements. This sort, in case it would be desired, is not reflected
in my approach.

Janis

> Unless he is using the WHINY_USERS option. Or asort or asorti or
> PROCINFO["sorted_in"] or ...
>

Re: Simplify an AWK pipeline?

<1702e068-5fde-4e3b-8f19-1cb8db80015cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1509&group=comp.lang.awk#1509

  copy link   Newsgroups: comp.lang.awk
X-Received: by 2002:a05:620a:3ac2:b0:76d:567a:42f0 with SMTP id ss2-20020a05620a3ac200b0076d567a42f0mr9037qkn.3.1692311799810;
Thu, 17 Aug 2023 15:36:39 -0700 (PDT)
X-Received: by 2002:a17:90a:cb02:b0:268:2de3:e6b2 with SMTP id
z2-20020a17090acb0200b002682de3e6b2mr189334pjt.5.1692311799543; Thu, 17 Aug
2023 15:36:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.awk
Date: Thu, 17 Aug 2023 15:36:38 -0700 (PDT)
In-Reply-To: <ubm5g7$3u7rt$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=1.145.186.50; posting-account=otjK7AoAAAAOtkBkeky3H-U7ksxwNnpW
NNTP-Posting-Host: 1.145.186.50
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<ubk4of$3l2l6$1@dont-email.me> <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1702e068-5fde-4e3b-8f19-1cb8db80015cn@googlegroups.com>
Subject: Re: Simplify an AWK pipeline?
From: robert.mesibov@gmail.com (Robert Mesibov)
Injection-Date: Thu, 17 Aug 2023 22:36:39 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 4
 by: Robert Mesibov - Thu, 17 Aug 2023 22:36 UTC

Apologies for not explaining that there are numerous non-unique-ID fields, and yes, what I am aiming for is a sort beginning with the first non-unique-ID field.

My code is complicated because I need to preserve the original records for the output, while also modifying the original records by "de-uniquifying" the unique-ID fields in order to hunt for partial duplicates.

I'll continue to tinker with this and report back if I can simplify the code, but I would be grateful for any other AWK solutions.

Re: Simplify an AWK pipeline?

<20230817155923.260@kylheku.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1510&group=comp.lang.awk#1510

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 864-117-4973@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Thu, 17 Aug 2023 23:00:45 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <20230817155923.260@kylheku.com>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<20230816174942.345@kylheku.com>
Injection-Date: Thu, 17 Aug 2023 23:00:45 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="fc52cdeffb3fef5252f6f578f21e742b";
logging-data="4147867"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18wGboX12uyODseDOmhYoFCesvJ+Wi0wtM="
User-Agent: slrn/1.0.3 (Linux)
Cancel-Lock: sha1:AOvFw/sTNDyrgp8FilreY+czgPs=
 by: Kaz Kylheku - Thu, 17 Aug 2023 23:00 UTC

On 2023-08-17, Kaz Kylheku <864-117-4973@kylheku.com> wrote:
> (flow (get-lines)
> (sort-group @1 (opip (spl " ") [callf list* 1 3 4..:]))
^^^^^^^^
> [...]

This selects the second, fourth and fifth fields and each field after
the fifth, as the non-unique fields on which to group.

I inferred the requirement that the complement of the unique fields
should be used: all fields which are not the unique ones.

Re: Simplify an AWK pipeline?

<ubmbhv$3uu0a$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1511&group=comp.lang.awk#1511

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Re: Simplify an AWK pipeline?
Date: Fri, 18 Aug 2023 01:47:10 +0200
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <ubmbhv$3uu0a$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<ubk4of$3l2l6$1@dont-email.me>
<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
<1702e068-5fde-4e3b-8f19-1cb8db80015cn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 17 Aug 2023 23:47:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="51cd4d17e930a66a2b77cbd7e9749d43";
logging-data="4159498"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/lE9TxupW+716bjnMI53y8"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:w/JFa+8EnaGLto18HxeP9xhm470=
In-Reply-To: <1702e068-5fde-4e3b-8f19-1cb8db80015cn@googlegroups.com>
 by: Janis Papanagnou - Thu, 17 Aug 2023 23:47 UTC

On 18.08.2023 00:36, Robert Mesibov wrote:
>
> I'll continue to tinker with this and report back if I can simplify
> the code, but I would be grateful for any other AWK solutions.

For any additional sorting Kenny gave hints (see his point 3) that
can simply be added if you're using GNU awk.

Janis

Re: Simplify an AWK pipeline?

<6bf456c7-22c1-4d69-bd9f-7ee91c7b92c8n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1512&group=comp.lang.awk#1512

  copy link   Newsgroups: comp.lang.awk
X-Received: by 2002:a05:622a:c1:b0:40f:f1ed:9841 with SMTP id p1-20020a05622a00c100b0040ff1ed9841mr20656qtw.12.1692346981456;
Fri, 18 Aug 2023 01:23:01 -0700 (PDT)
X-Received: by 2002:a17:903:22cd:b0:1bb:f329:e1cf with SMTP id
y13-20020a17090322cd00b001bbf329e1cfmr672045plg.3.1692346980949; Fri, 18 Aug
2023 01:23:00 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.awk
Date: Fri, 18 Aug 2023 01:23:00 -0700 (PDT)
In-Reply-To: <ubmbhv$3uu0a$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=1.145.186.50; posting-account=otjK7AoAAAAOtkBkeky3H-U7ksxwNnpW
NNTP-Posting-Host: 1.145.186.50
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<ubk4of$3l2l6$1@dont-email.me> <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
<1702e068-5fde-4e3b-8f19-1cb8db80015cn@googlegroups.com> <ubmbhv$3uu0a$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6bf456c7-22c1-4d69-bd9f-7ee91c7b92c8n@googlegroups.com>
Subject: Re: Simplify an AWK pipeline?
From: robert.mesibov@gmail.com (Robert Mesibov)
Injection-Date: Fri, 18 Aug 2023 08:23:01 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Robert Mesibov - Fri, 18 Aug 2023 08:23 UTC

Many thanks again, Janis. I doubt that I can improve on

awk '{x=$0; $1=$3=1; y=$0; a[y]=a[y] RS x; b[y]++}; END {for (i in a) if (b[i]>1) print a[i]}' demo

and the sorting isn't critical.

Bob

Nobody does that anymore... (Was: Simplify an AWK pipeline?)

<ubvtrt$3rnur$1@news.xmission.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1513&group=comp.lang.awk#1513

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!xmission!nnrp.xmission!.POSTED.shell.xmission.com!not-for-mail
From: gazelle@shell.xmission.com (Kenny McCormack)
Newsgroups: comp.lang.awk
Subject: Nobody does that anymore... (Was: Simplify an AWK pipeline?)
Date: Mon, 21 Aug 2023 14:54:53 -0000 (UTC)
Organization: The official candy of the new Millennium
Message-ID: <ubvtrt$3rnur$1@news.xmission.com>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com> <b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com> <ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
Injection-Date: Mon, 21 Aug 2023 14:54:53 -0000 (UTC)
Injection-Info: news.xmission.com; posting-host="shell.xmission.com:166.70.8.4";
logging-data="4055003"; mail-complaints-to="abuse@xmission.com"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: gazelle@shell.xmission.com (Kenny McCormack)
 by: Kenny McCormack - Mon, 21 Aug 2023 14:54 UTC

In article <ubm5g7$3u7rt$1@dont-email.me>,
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
....
>> 2) You probably don't need to mess with SUBSEP. Your data seems
>> to be OK with assuming no embedded spaces (i.e., so using space
>> as the delimiter is OK) Note that SUBSEP is intended to be
>> used as the delimiter for the implementation of old-fashioned
>> pseudo-multi-dimensional arrays in AWK, but nobody uses that
>> functionality anymore. Therefore, some AWK programmers have co-opted
>> SUBSEP as a symbol provided by the language to represent a character
>> that is more-or-less guaranteed to never occur in user data.
>
>Yes, SUBSEP is the default separation character for arrays and. Of
>course you can use other characters (that require less text). Why
>you think that "nobody uses that functionality anymore" is beyond
>me; I doubt you have any evidence for that, so I interpret it just
>as "I [Kenny] don't use it anymore.", which is fine by me.

It may be a language barrier - I understand that English is not your first
language - but in colloquial English, the phrase "nobody does X anymore"
often means something close to "nobody should do X anymore" or "Only uncool
people still do X". Obviously, *some* people still do. BTW, see also the
famous Yogi Berra quip: (Of a certain restaurant) "Nobody goes there
anymore; it's too crowded."

Anyway, this is definitely true of old-fashioned AWK pseudo-multi-dimensional
arrays. They never really worked well, and now that we have true MDAs,
nobody should be using the old stuff.

--
The randomly chosen signature file that would have appeared here is more than 4
lines long. As such, it violates one or more Usenet RFCs. In order to remain
in compliance with said RFCs, the actual sig can be found at the following URL:
http://user.xmission.com/~gazelle/Sigs/GodDelusion

Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)

<uc0293$1vel2$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1514&group=comp.lang.awk#1514

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)
Date: Mon, 21 Aug 2023 18:10:10 +0200
Organization: A noiseless patient Spider
Lines: 85
Message-ID: <uc0293$1vel2$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
<ubvtrt$3rnur$1@news.xmission.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 16:10:11 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="159130d41524ed58170cc96bb06ea40c";
logging-data="2079394"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX194I3weSz3mLb8647AI7aBv"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:EFMjt3bLyV2Zqfytqej0OKu3D1w=
X-Enigmail-Draft-Status: N1110
In-Reply-To: <ubvtrt$3rnur$1@news.xmission.com>
 by: Janis Papanagnou - Mon, 21 Aug 2023 16:10 UTC

On 21.08.2023 16:54, Kenny McCormack wrote:
> In article <ubm5g7$3u7rt$1@dont-email.me>,
> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
> ...
>>> 2) You probably don't need to mess with SUBSEP. Your data seems
>>> to be OK with assuming no embedded spaces (i.e., so using space
>>> as the delimiter is OK) Note that SUBSEP is intended to be
>>> used as the delimiter for the implementation of old-fashioned
>>> pseudo-multi-dimensional arrays in AWK, but nobody uses that
>>> functionality anymore. Therefore, some AWK programmers have co-opted
>>> SUBSEP as a symbol provided by the language to represent a character
>>> that is more-or-less guaranteed to never occur in user data.
>>
>> Yes, SUBSEP is the default separation character for arrays and. Of
>> course you can use other characters (that require less text). Why
>> you think that "nobody uses that functionality anymore" is beyond
>> me; I doubt you have any evidence for that, so I interpret it just
>> as "I [Kenny] don't use it anymore.", which is fine by me.
>
> It may be a language barrier - I understand that English is not your first
> language - but in colloquial English, the phrase "nobody does X anymore"
> often means something close to "nobody should do X anymore" or "Only uncool
> people still do X". Obviously, *some* people still do. BTW, see also the
> famous Yogi Berra quip: (Of a certain restaurant) "Nobody goes there
> anymore; it's too crowded."
>
> Anyway, this is definitely true of old-fashioned AWK pseudo-multi-dimensional
> arrays. They never really worked well, and now that we have true MDAs,
> nobody should be using the old stuff.

Okay, thanks for explaining. So I've interpreted it right
(despite any probably existing language barrier). - And I
disagree with you in the given thread context, still also
generally.

"True" multi-dimensional arrays are unnecessary here, and
if you use separate keys where you need only one composite
key is not only unnecessary it seems to complicate matters.
(But you may provide code to prove me wrong if you like;
how would multidimensional arrays help here?)

In the past I used Gnu Awk's multi-dimensional arrays in
contexts where it was necessary, and there it simplified
*these* things. But usually when using awk I observed that
"simple [associative] arrays" is what I need in 98% of my
awk applications[*] - of course the situation where _you_
(personally) use Awk arrays may be different (that would
actually mean "I [Kenny] don't use it anymore.", what I
interpreted upthread).[**]

Since a[k] is a/the common use the question is, in which
contexts is a[k1][k2] necessary and in which is a[k1,k2]
sufficient? - My observation is that only where you need
true multi-dimensional access a[k1][k2] is advantageous;
but this appears not to be the common case. (BTW, [***].)

I think it boils down to observe that the concrete given
solution uses just one composed index and that there's no
need for non-standard "true multi-dimensional arrays"
because here there are no multi-dimensional arrays.[****]

Thanks for reading.

Janis

[*] Reminds me of the reasons why in Pascal the supported
only loops based on integral indices (and not FP); because
there was evidence that this was used most of the times.
(It doesn't mean that there aren't sensible applications
beyond that.)

[**] Of course you may also provide evidence and reasons
for the given hypotheses "nobody should do X anymore" -
Why? - and "Only uncool people still do X" - "uncool"? -
for (X = "don't use simple awk arrays". - I think such
statements make just no sense, yet if they are just fuzzy
(non determined) or personal without evidence.

[***] I deliberately ignored that the GNU Awk extension
is also non-standard, since it's not necessary for our
dispute.

[****] You see that where 'k' is composed and only a[k]
and c[k] used; simply and without disadvantage.

Short version of Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)

<uc0501$1vsmp$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1515&group=comp.lang.awk#1515

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: janis_papanagnou+ng@hotmail.com (Janis Papanagnou)
Newsgroups: comp.lang.awk
Subject: Short version of Re: Nobody does that anymore... (Was: Simplify an
AWK pipeline?)
Date: Mon, 21 Aug 2023 18:56:33 +0200
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uc0501$1vsmp$1@dont-email.me>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com>
<b00f43d1-f50f-44ca-bb1f-517065cc3e28n@googlegroups.com>
<ubm3cd$3mq58$1@news.xmission.com> <ubm5g7$3u7rt$1@dont-email.me>
<ubvtrt$3rnur$1@news.xmission.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 16:56:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="65539b0ce6928c20c917a6a5ff493676";
logging-data="2093785"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1++CFCW33CKY+DYvz9jVPhi"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:1+gsE8Qc+zJoytK+BxJFDUHSH+I=
In-Reply-To: <ubvtrt$3rnur$1@news.xmission.com>
X-Enigmail-Draft-Status: N1110
 by: Janis Papanagnou - Mon, 21 Aug 2023 16:56 UTC

On 21.08.2023 16:54, Kenny McCormack wrote:
>
> Anyway, this is definitely true of old-fashioned AWK pseudo-multi-dimensional
> arrays. They never really worked well, and now that we have true MDAs,
> nobody should be using the old stuff.

I think the misunderstandings in this subthread were...
- we have no disagreement where "MDAs" are _necessary_ and used,
- in this thread's solutions we had no application of "MDAs"
(just a composed key), and "MDAs" also weren't necessary,
- (thesis) basic associative arrays are predominantly used
(mileages may probably vary depending on where awk is used),
- "MDAs" support associative functionality thus hardly avoidable
(is a[k] "old stuff" or is it an MDA with one dimension?)

Janis

Re: Short version of Re: Nobody does that anymore... (Was: Simplify an AWK pipeline?)

<uc0cfh$3rv8t$1@news.xmission.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=1516&group=comp.lang.awk#1516

  copy link   Newsgroups: comp.lang.awk
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!xmission!nnrp.xmission!.POSTED.shell.xmission.com!not-for-mail
From: gazelle@shell.xmission.com (Kenny McCormack)
Newsgroups: comp.lang.awk
Subject: Re: Short version of Re: Nobody does that anymore... (Was: Simplify an
AWK pipeline?)
Date: Mon, 21 Aug 2023 19:04:17 -0000 (UTC)
Organization: The official candy of the new Millennium
Message-ID: <uc0cfh$3rv8t$1@news.xmission.com>
References: <4cbcf731-efb7-4bdb-a69e-8a06407a4a7fn@googlegroups.com> <ubm5g7$3u7rt$1@dont-email.me> <ubvtrt$3rnur$1@news.xmission.com> <uc0501$1vsmp$1@dont-email.me>
Injection-Date: Mon, 21 Aug 2023 19:04:17 -0000 (UTC)
Injection-Info: news.xmission.com; posting-host="shell.xmission.com:166.70.8.4";
logging-data="4062493"; mail-complaints-to="abuse@xmission.com"
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: gazelle@shell.xmission.com (Kenny McCormack)
 by: Kenny McCormack - Mon, 21 Aug 2023 19:04 UTC

In article <uc0501$1vsmp$1@dont-email.me>,
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
>On 21.08.2023 16:54, Kenny McCormack wrote:
>>
>> Anyway, this is definitely true of old-fashioned AWK pseudo-multi-dimensional
>> arrays. They never really worked well, and now that we have true MDAs,
>> nobody should be using the old stuff.
>
>I think the misunderstandings in this subthread were...
>- we have no disagreement where "MDAs" are _necessary_ and used,
>- in this thread's solutions we had no application of "MDAs"
> (just a composed key), and "MDAs" also weren't necessary,
>- (thesis) basic associative arrays are predominantly used
> (mileages may probably vary depending on where awk is used),
>- "MDAs" support associative functionality thus hardly avoidable
> (is a[k] "old stuff" or is it an MDA with one dimension?)

I never said anything about any of that - That is, anything about whether
or not MDAs were needed in the context of this thread (Clearly, they are
not).

My content was, as it usually is, entirely "meta". Thus, the following two
comments:

1) It sounded like you had misunderstood my comment about "nobody does
that anymore", so I clarified what the colloquial meaning of that
expression is. Note that I have hit a similar thing a while back in the
shell group - where I stated that nobody uses backticks anymore,
because we now have $(), which, as we all know, is better in just about
every way (the only exception that I can think of is that if you are
programming in csh or tcsh, then you have to use backticks - although
this may sound facetious, I still do some tcsh stuff, so I have to keep
this in mind).

I got a lot of blowback from indignant people who wanted me to know
that they still use backticks and they were personally insulted that I
claimed that no one did that anymore. Clearly, those people did not
understand the idiomatic meaning of the expression either.

2) You had used SUBSEP in your script (reply to OP), but were
(obviously) not using (any form of) MDAs, so I made some comments (not
for your benefit, but for OP's) about your usage of SUBSEP (i.e., how
it is usually only used when using pseudo-MDAs, but that some people
have co-opted it for other uses).

--
The plural of "anecdote" is _not_ "data".

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor