Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从unix sed命令读取大型机文件?_Unix_Sed_Mainframe - Fatal编程技术网

如何从unix sed命令读取大型机文件?

如何从unix sed命令读取大型机文件?,unix,sed,mainframe,Unix,Sed,Mainframe,我正在尝试通过“sed”读取大型机文件,但它无法读取。 这个脚本是从大型机JCL调用的,因此它内置了tcsh sed -n '1,10p' mainframeFile 不会产生任何结果,因为它无法读取。当您提到大型机文件时,我假设您指的是MVS文件,而不是USS文件,因为USS文件是为sed指定的,与任何其他文件一样 sed不能直接使用,您可以通过使用cat并将其泵送至stdout和管道来使用此黑客使其工作。有关MVS数据集和命令行实用程序的更多信息,请阅读下面的内容。它还参考了如何在USS

我正在尝试通过“sed”读取大型机文件,但它无法读取。 这个脚本是从大型机JCL调用的,因此它内置了tcsh

sed -n '1,10p' mainframeFile 

不会产生任何结果,因为它无法读取。

当您提到大型机文件时,我假设您指的是MVS文件,而不是USS文件,因为USS文件是为
sed
指定的,与任何其他文件一样

sed
不能直接使用,您可以通过使用
cat
并将其泵送至stdout和管道来使用此黑客使其工作。有关MVS数据集和命令行实用程序的更多信息,请阅读下面的内容。它还参考了如何在USS命令中指定MVS数据集,如
cat

我在一个本地系统上尝试了这个方法,它使用了这个
sed
命令

cat”//'USER1.TEST.CNTL(工作卡)“

//JOB(CCCC),‘HOGSTROM’,
//MSGLEVEL=(1,1), //MSGCLASS=O,
//类别=A,
//NOTIFY=&SYSUID

cat”//'USER1.TEST.CNTL(工作卡)“| sed's/JOB/BOB/”

//北京银行(中交所),“霍格斯特伦”,
//MSGLEVEL=(1,1),
//MSGCLASS=O,
//类别=A,
//NOTIFY=&SYSUID

为什么不在
sed

在命令行上支持MVS文件名的实用程序有限。这概述了支持的实用程序

不幸的是,sed不在列表中

以下实用程序支持使用MVS™ 文件名

有关限制和例外情况,请参阅每个实用程序的说明:
-自动安装
-c89
-cp
-mv
-帕克斯
-焦油
不支持使用DSNTYPE=LARGE定义的MVS数据集。


本节讨论访问

也就是说,您可以随时将该文件复制到临时文件,并对其执行任何操作,然后将新文件复制回您评论时我正在试验的版本。。。我最初尝试了
cp
发送到stdout,然后又尝试了
cat
,效果很好。。。老实说,我们需要Linux系统服务,我发现在JAVA批处理中使用JZ/OS库更容易做到这一点。这可能不是最好的方法,但我发现这对于sureDovetailed Technologies来说是最简单的方法,它是另一种将“经典”MVS数据集路由到z/Unix实用程序的有用机制。@cschneid感谢链接。。。我不知道这是他们的产品之一。你能澄清一下“大型机文件”是什么意思吗?是的,它是一个MVS文件。只要确保它是一个文本文件,而不是二进制文件(低值)。需要用空格替换点。我们之前尝试过“cat MFFile | sed”命令,但它没有产生任何输出,只是发现正在读取的文件存在一些格式问题,我相信是点而不是空格。在修复了文件本身之后,该命令起作用了。”sed’命令也适用于文本文件,但不适用于二进制文件。低值必须用空格代替。谢谢大家的建议。