我试图捕获一堆文件,其中一些可能不存在。现在可以,如果其中一些不存在,但我不希望cat在这种情况下返回错误,如果可能的话。这是我的电话:
zcat *_max.rpt.gz *_min.rpt.gz | gzip > temp.rpt.gz
运行此命令时,将存在一堆匹配* _max.rpt.gz的文件,或者* _min.rpt.gz将存在。如果对方不存在,我不在乎,我只是想连接我能做到的。但我收到一条错误消息,阻止我的其余代码运行。
我能做什么?谢谢。
只需将stderr重定向到/ dev / null:
cat file1 file2 .... 2>/dev/null
如果一个或多个文件不存在,那么cat将给出一个错误,该错误将转到/ dev / null并且您将获得所需的结果。
grep -hs ^ file1 file2 ....
不像cat有零返回码。选项-h禁用文件名打印,选项-s禁用文件错误报告,^匹配所有行。
zcat `ls *.rpt.gz | grep -E '_(max|min)\.rpt\.gz$'` | gzip > temp.rpt.gz
有点破解,但是shell也是如此:-P