Bash循环到gunzip文件并删除文件扩展名和文件前缀

时间:2016-04-08 03:59:20

标签: string bash shell command-line

我有几个.vcf.gz文件:

tsc

我想对这些文件进行gunzip并重命名(一次删除subset_file1.vcf.vcf.gz subset_file2.vcf.vcf.gz subset_file3.vcf.vcf.gz 和redudant subset_扩展程序并获取这些文件:

.vcf

这是我尝试的脚本:

file1.vcf
file2.vcf
file3.vcf

1 个答案:

答案 0 :(得分:2)

由于输出路径名称必须进行三次操作

1.删除目录部分

2.删除前缀subset_

3.删除减少扩展.vcf

只用一个命令就很难完成。

以下是修改版本。要小心才能尝试。我没有在计算机上彻底测试它。

for i in /file/path/*.gz;
do 
    # get the output file name
    o=$(echo ${i##*/} | sed 's/.*_\(.*\)\(\.[a-z]\{3\}\)\{2\}.*/\1\2/g')       
    gunzip -k $i > /get/in/this/dir/$o
done