At Tue, 23 Apr 2019 13:45:40 +0200, Andreas Krey <a.krey%gmx.de@localhost> wrote:
Subject: Re: uniq on open streams
>
> On Tue, 23 Apr 2019 05:51:19 +0000, JP wrote:
> > I had a need to run uniq on an open stream. It doesn't seem to print
> > the most recent line.
> >
> > $ lua -e 'print("a");print("b");print("c"); repeat until false' |uniq
> > a
> > b
> >
> > ^ should print the c as well, no?
>
> Yes, but. 'uniq -c' can only print the 'c' line once it gets a different input line
> or EOF, and I'd bet that the code doesn't try to behave differently when run without -c.
So, this surprised me, and so I tried this command-line in the first
open window I could paste it into, and was surprised to see the 'c'!
It turns out I had pasted into a macOS window.
Thinking "Oh, so it should work on FreeBSD too...", I opened a window to
my recently installed FreeBSD-12.0 machine, and after rewriting the Lua
code into AWK, I was surprised to see absolutely no output at all!
Then I made the mistake of looking at the recent FreeBSD code. Oy!
Such churn! I've no idea why it doesn't output anything.
So I checked opensource.apple.com. Their version (in "text_cmds") is
somewhat behind the most recent FreeBSD churn, but is none the less
derived from an earlier version of the FreeBSD code.
I then looked at the OpenSolaris version (and the UNIX SysVr4 code from
which it came), and I thought at first glance that it might spit out the
'c' too, but alas it does not.
Neither does OpenBSD's.
Also, what about lack of a trailing newline on the last line when the
line before has the same content? Is the newline part of the line?
Some (FreeBSD and SysVr4/OpenSolaris) would say not.
--
Greg A. Woods <gwoods%acm.org@localhost>
+1 250 762-7675 RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpArWSmFNteS.pgp
Description: OpenPGP Digital Signature