在for循环中Zcat多个压缩文件
Zcat multiple compressed files in a for loop
我是 bash 脚本编写的新手,我一直在 Whosebug 中搜索与我正在寻找的内容相匹配的答案,但找不到完全匹配的答案。如果这个问题已经得到解答,我深表歉意。
我有多个包含多个压缩文件的文件夹,有些是 gzip 扩展名,有些没有扩展名。
我能够看到压缩文件内容的唯一方法是
zcat filename.gzip > filename
我的目标是创建一个 for 循环:
- zcat 所有文件并将其输出到一个新文件并在末尾添加一个标识符,例如“-read”
- 删除压缩文件
谢谢!
解压缩 gzip
将使用 find
、basename
和 while
循环处理的所有文件:
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
循环将在子 shell 中 运行,并且 set -e
将在其中设置错误停止选项,以便如果 zcat
或 rm
它不会继续向前犁地摧毁眼前的一切。
我是 bash 脚本编写的新手,我一直在 Whosebug 中搜索与我正在寻找的内容相匹配的答案,但找不到完全匹配的答案。如果这个问题已经得到解答,我深表歉意。
我有多个包含多个压缩文件的文件夹,有些是 gzip 扩展名,有些没有扩展名。
我能够看到压缩文件内容的唯一方法是
zcat filename.gzip > filename
我的目标是创建一个 for 循环:
- zcat 所有文件并将其输出到一个新文件并在末尾添加一个标识符,例如“-read”
- 删除压缩文件
谢谢!
解压缩 gzip
将使用 find
、basename
和 while
循环处理的所有文件:
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
循环将在子 shell 中 运行,并且 set -e
将在其中设置错误停止选项,以便如果 zcat
或 rm
它不会继续向前犁地摧毁眼前的一切。