Zcat 在 for 循环中处理多个压缩文件



我对bash脚本相当陌生,我一直在stackoverflow中寻找与我正在寻找的答案相匹配的答案,但找不到完全匹配的答案..如果已经回答了,请道歉。

我有多个文件夹,其中包含多个压缩文件,有些是gzip扩展名,有些没有扩展名。

我能够看到压缩文件内容的唯一方法是通过

zcat filename.gzip > filename

我的目标是创建一个 for 循环,它将:

  1. zcat 所有文件并将其输出到新文件并在末尾添加一个标识符,类似于"-read">
  2. 删除压缩文件

谢谢!

要解压缩gzip使用findbasenamewhile循环处理的所有文件:

find . -type f | while read f; do
set -e # You should probably always script with set -e
# This will cause the subshell to stop on errors.
zcat < "$f" > "$f-new" || continue
rm "$f"
done

这也应该处理出现的任何奇怪的引用。while循环将在子外壳中运行,set -e将在其中设置错误时停止选项,这样如果zcatrm出现错误,它就不会继续前进摧毁眼前的一切。

相关内容

  • 没有找到相关文章

最新更新