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

标签 linux bash compression ksh zcat

我正在尝试通过选项 -q 或 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

关于linux - 使用管道时如何在没有警告的情况下使用 zcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55055664/

相关文章:

c - libdl 加载的 "plugins"如何引用加载它们的程序中的符号?

python - 解码十六进制(?)数据包

linux - vim自动选择服务器名

linux - 当我获取我的脚本时终端关闭(在开始时以点运行)

c++ - 将文件数据复制到 int 数组中

Linux Bash expr 索引命令

json - 制作一个既有效的 JSON 又转义 shell 的字符串

compression - 给定一个解压缩的 gzip 文件,有没有办法重新创建确切的原始 gzip 文件?

.htaccess - gzip 工作但 YSlow 表明它不是

scala - Spark独立模式: How to compress spark output written to HDFS