我现在已经多次遇到这种需求,我很惊讶我很难找到一种“最佳”方法来连接不同压缩类型的文件。
例如,我有一个目录,其中包含文件content1
、content2.bz2
和content3.gz
. 如果我想对所有文件执行相同的操作,我必须首先检查它们是什么压缩才能正确解压缩,解压缩,然后执行我的操作。
从那以后,我编写了一个脚本来以“智能”方式处理连接。
#! /bin/bash
# Smart Cat
# usage smcat <file|file*>
for file in $@; do
end=${file##*.}
if [[ $end == 'bz2' ]] ; then
bzcat $file
elif [[ $end == 'gz' ]] ; then
gzcat $file
else
cat $file
fi
done
似乎很愚蠢,没有内置的方法来处理所有不同的压缩类型。还是在那里,我还没有找到?感谢大家的帮助!