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

Reply via email to