Sma*_*der 2 unix sed mainframe
我试图通过''sed'读取一个大型机文件,但它不能.正在从大型机JCL调用此脚本,因此它内置了tcsh.
sed -n '1,10p' mainframeFile
Run Code Online (Sandbox Code Playgroud)
因为无法阅读而不会产生任何结果.
当您引用大型机文件时,我假设您的意思是MVS文件而不是USS文件,因为USS文件的指定sed与任何其他文件一样.
sed不能直接,你可以使用这个hack使其工作,通过使用cat和泵送到stdout和管道.有关MVS数据集和命令行实用程序的更多信息,请阅读下文.它还有关于如何在USS命令中指定MVS数据集的参考cat.
我在本地系统上尝试了这个,它使用了这个sed命令.
cat "//'USER1.TEST.CNTL(JOBCARD)'"
// JOB(CCCCCCCC),'HOGSTROM',
// MSGLEVEL =(1,1),// MSGCLASS = O,
// CLASS = A,
// NOTIFY =&SYSUID
cat "//'USER1.TEST.CNTL(JOBCARD)'" | sed 's/JOB/BOB/'
// BOB(CCCCCCCC),'HOGSTROM',
// MSGLEVEL =(1,1),
// MSGCLASS = O,
// CLASS = A,
// NOTIFY =&SYSUID
为什么不sed呢?
在命令行上支持MVS文件名的实用程序有限.IBM的这篇文章概述了支持的实用程序.
不幸的是,sed不在列表中
以下实用程序支持使用MVS™文件名.
有关限制和例外,请参阅每个实用程序的说明:
- automount
- c89
- cp
- mv
- pax
- 不支持使用DSNTYPE = LARGE定义的 tar
MVS数据集.