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 csh one liner用于比较2个压缩文本文件_Unix_Csh - Fatal编程技术网

Unix csh one liner用于比较2个压缩文本文件

Unix csh one liner用于比较2个压缩文本文件,unix,csh,Unix,Csh,我试图使用zcat和diff比较2.gz文本文件。这是在JunOS框上,因此添加新的二进制文件(zdiff)不是一个选项,只有有限数量的其他shell可用。这可能是真的,这些东西可以添加,但管理政策禁止这一点。csh是默认的shell,但是tcsh,也可以使用sh。我希望能够将挂起的提交文件(juniper.conf+.gz)与/config目录中的当前配置文件(juniper.conf.gz)进行比较 我读过类似这样的东西 diff <(zcat juniper.conf+.gz) &l

我试图使用zcat和diff比较2.gz文本文件。这是在JunOS框上,因此添加新的二进制文件(zdiff)不是一个选项,只有有限数量的其他shell可用。这可能是真的,这些东西可以添加,但管理政策禁止这一点。csh是默认的shell,但是tcsh,也可以使用sh。我希望能够将挂起的提交文件(juniper.conf+.gz)与/config目录中的当前配置文件(juniper.conf.gz)进行比较

我读过类似这样的东西

diff <(zcat juniper.conf+.gz) <(zcat juniper.conf.gz)

diff建议的命令中的大多数功能都特定于bash,或者至少是sh


如果
sh
确实是Bourne shell,而不是许多系统上的
bash
ksh
的符号链接,那么您不能使用
之类的东西感谢您的回复。你的第一个建议真的很充分。我试图找到更复杂的东西,但实际上,将它们作为单独的命令放在一行上是完全可以接受的(感觉就像一步)。你只需要重新调整我的脑袋。第二个建议不起作用。没有/dev/fd/3文件(显然,我肯定不是shell脚本编写者);我发现一篇文章讨论了/dev/fd,但没有讨论TLDR。最后,安装/构建bash的建议非常好,但遗憾的是,在我们的生产网络上没有。再次感谢!
zcat juniper.conf+.gz | { zcat juniper.conf.gz | diff /dev/fd/3 - ; } 3<&0
zcat juniper.conf+.gz > 0 ; zcat juniper.conf.gz > 1 ; diff 0 1 ; rm 0 1
zcat juniper.conf+.gz | { zcat juniper.conf.gz | diff /dev/fd/3 - ; } 3<&0
sh -c 'zcat juniper.conf+.gz | { zcat juniper.conf.gz | diff /dev/fd/3 - ; } 3<&0'
wget ftp://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz && ...