On 16-Nov-2015 15:39 -0600, Steinmetz, Paul wrote:
Qsh cat worked.
I'm surprised that IBM does not have an i5/OS command for this?
Deemed necessary for the traditional user of the integrated database,
was an ability for such users to copy textual data between
record-delimited stream files and database source or flat files. Thus
the Command (CMD) objects, Copy From Stream File (CPYFRMSTMF) and Copy
To Stream File (CPYTOSTMF) were provided to do that. Similarly the
capability is provided to copy record-data between database /described/
[i.e. not flat nor source] files and text stream record-data, for which
the commands Copy From Import File (CPYFRMIMPF) and Copy To Import File
(CPYTOIMPF) were provided. All of those commands allow moving the
record-data *between* the stream record of the Stream File (STMF) and
the database record of the DataBase File (DBF).
Yet for the capabilities to work solely with stream data [copy,
append, truncate, compare, et al, for the data within a STMF or between
STMFs], that was already available from utilities that are included as
part of the QSHELL. And for those utilities [as noted already, found to
be functional for that purpose], there is of course the Command QSH
using the CMD() parameter specification, for which the capability is
given to pass requests of those utilities to be interpreted by\within
the shell; i.e. a Command (CMD) interface is already provided, though a
generic interface to the utilities rather than a one-to-one correlation
between command and utility.
So deemed quite near literally as unnecessary, was providing separate
Command (CMD) objects to mimic those various *other* functions that were
already provided by the shell utilities. The OS providing specific
Command interfaces for each utility would be additive to, as well as
duplicitous of the functionality already available via QSH. The
duplication, and the associated costs of supporting each additional
interface, at least figuratively, would be mostly just /bloat/. Such
added capabilities could be left to someone else to provide either for
themselves or as a [free or paid 3rd party] offering to those who would
not want to use the already-existing utilities nor to write their own
features outside of what those shell utilities provide.
FWiW the FTP subcommand APPEND also provides the capability to
concatenate records from one [stream] file to another existing [stream]
file when sending data; i.e. instead of PUT, use APPEND. While there is
a "(REPLACE" capability for GET [using NAMEFMT=0], I am not aware of an
Append capability with the GET subcommand [e.g. there is not "(ADD"] nor
an alternate subcommand for data transfers when receiving data.
IIRC, IBM did provide IFSTOOLS [or something quite similar by nature,
even if what they provided was not by that name] as a no-cost offering
with no formal support, that did provide some specific /command/
interfaces that would act on STMF without having to defer to the Qshell.
However in a quick web search of that token IFSTOOLS, along with the
word APPEND, I noticed a document [dead link, but in a cache] that
seemingly implied [or so I inferred, with only a cursory glance] that
there was no tooling as part of IFSTOOLS for appending one STMF to another.