Discussion:
[9fans] Duff's rc paper: Why awk?
(too old to reply)
markus schnalke
2013-06-07 13:02:06 UTC
Permalink
Hoi,

I've read [0], which is enlightening btw, but there is one thing,
in Section 27, which I don't understand: Why is awk(1) used there?

fn read{
$1=`{awk '{print;exit}'}
}

[0] http://static.tobold.org/rc/rc-duff.html

I rather would have used sed(1), which is less distracting in this
case:

fn read{
$1=`{sed q}
}

This use of awk is unexpected to me, it draws my attention on it,
thus I'm searching for the strange hidden detail that might be
emphasized. (Such as the use of `if not' instead of `else'.) But I
can't find it.

Maybe there is no such hidden detail. Maybe there is no real
reason behind the use of awk here. I'm not really sure ...


meillo
erik quanstrom
2013-06-07 13:18:26 UTC
Permalink
Post by markus schnalke
I've read [0], which is enlightening btw, but there is one thing,
in Section 27, which I don't understand: Why is awk(1) used there?
fn read{
$1=`{awk '{print;exit}'}
}
[0] http://static.tobold.org/rc/rc-duff.html
I rather would have used sed(1), which is less distracting in this
fn read{
$1=`{sed q}
}
This use of awk is unexpected to me, it draws my attention on it,
thus I'm searching for the strange hidden detail that might be
emphasized. (Such as the use of `if not' instead of `else'.) But I
can't find it.
Maybe there is no such hidden detail. Maybe there is no real
reason behind the use of awk here. I'm not really sure ...
plan 9 sed reads a second line before quitting (note the "def" in the example
below); sed does not work.

- erik
------
; fn read{
$1=`{sed q}
echo read `{whatis $1}
}
; read x
abc
def
read x=abc
; fn read{
$1=`{awk '{print;exit}'}
echo read `{whatis $1}
}
; read x
abc
read x=abc
Rudolf Sykora
2013-06-11 12:24:16 UTC
Permalink
Post by erik quanstrom
plan 9 sed reads a second line before quitting (note the "def" in the example
below); sed does not work.
Is there any good reason for this difference between plan9 and gnu behaviour?

Thanks!
Ruda
markus schnalke
2013-06-11 15:38:56 UTC
Permalink
Post by Rudolf Sykora
Post by erik quanstrom
plan 9 sed reads a second line before quitting (note the "def" in the example
below); sed does not work.
Erik, thanks for the explanation.

However, the man page states:

q Quit. Branch to the end of the script. Do not start a new cycle.

Thus, this is a bit odd.
Post by Rudolf Sykora
Is there any good reason for this difference between plan9 and gnu behaviour?
It looks a bit like the bug described in the man page, although input is read
from the terminal, not from a pipe.

http://plan9.bell-labs.com/magic/man2html/1/sed


meillo

Loading...