On Thu, 4 Feb 2016 15:30:53 -0600, Ed Gould wrote:
>On Feb 4, 2016, at 2:00 PM, Tom Brennan wrote:
>>
>> Unix Style:
>>
>> cat /etc/passwd | grep ^ted013: | awk -F':' '{print $3}'
>>
>> JCL Style:
>>
>> //CAT EXEC PGM=CAT
>> //SYSUT1 DD DSN=SYS1.ETC.PASSWD,DISP=SHR
>> //SYSUT2 DD DSN=&TEMP1,DISP=(NEW,PASS),SPACE=(CYL,(1,1))
>> //*
>> //GREP EXEC PGM=GREP
>> //SYSUT1 DD DSN=&TEMP1,DISP=(OLD,DELETE)
>> //SYSUT2 DD DSN=&TEMP2,DISP=(NEW,PASS),SPACE=(CYL,(1,1))
>> //SYSIN DD *
>> ^ted013:
>> /*
>> //AWK EXEC PGM=AWK
>> //SYSUT1 DD DSN=&TEMP2,DISP=(OLD,DELETE)
>> //SYSUT2 DD SYSOUT=*
>> //SYSIN DD *
>> awk -F':' '{print $3}'
>> /*
>> unix :)-------------------------------------SNIP-----------------
>
>To be fair to zOS There are "probably" the same files needed for UNIX
>its just they are "assumed".
>
No, they are not; not even as RAM disk files. A pipe communicates directly
between processes (like "tasks"). A DOS partisan once explained his
misunderstanding of pipes to me that way:
CAT reads /etc/passwd and writes to temporary file TEMP1.
When CAT terminates, GREP reads TEMP1 and writes TEMP2
When GREP terminates, AWK reads TEMP2 and writes to stdout.
Tom's JCL is actually:
cat /etc/passwd >temp1; grep ^ted013 <temp1 >temp2; awk -F':' '{print $3}';
rm temp1 temp2
In Tom's UNIX example, the stages run concurrently. This can make a big
difference if the first stage is long-running: you see output before it
terminates
(subject to some annoying buffer latency).
I could (and have) connected Classic OS programs with POSIX pipes in Rexx.
That takes more than 16 lines. (You could omit the comments and endfiles.)
I do see lack of temporary data sets as a design flaw of UNIX.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN