使用管道时如何在没有警告的情况下使用 zcat

how to use zcat without the warning when using pipe

我正在尝试通过 option -q or 2>/dev/null 使 zcat 警告静音 到目前为止没有任何工作。当缺少文件名时,我不断收到相同的警告。 我正在遍历 100 个压缩文件以提取特定数据。这个想法是,如果 zcat 遇到错误的名称或丢失的文件名,zcat 将保持安静并等待下一个周期,但目前这就是我在使用这两个选项时得到的

zcat -q $ram | head -n1 or zcat $ram | head -n1 2>/dev/null

gzip: compressed data not read from a terminal. Use -f to force decompression.
For help, type: gzip -h

知道如何解决这个问题或更快地读取具有有效静音功能的 .gz 文件的方法吗?

谢谢

目前,您仅重定向来自 head 的 stderr;您根本没有从 zcat 重定向。如果要从 zcat 重定向 stderr,则需要将重定向 放在管道符号 之前,如下所示:

zcat $ram 2>/dev/null | head -n1