压缩某些文件名的字母数字顺序大于其他文件名的文件

压缩某些文件名的字母数字顺序大于其他文件名的文件

我在 slurm 作业中对文件进行了 gzip 压缩。但作业在完成之前被取消了。这花了很长时间(一个文件约 10 分钟,而有 200 个文件)。我怎样才能只压缩尚未压缩的剩余文件?

$ ls
 
SRR7121484_1.fastq
SRR7121484_1.fastq.gz
SRR7121484_2.fastq
SRR7121484_2.fastq.gz
SRR7121485_1.fastq
SRR7121485_2.fastq
SRR7121488_1.fastq
SRR7121488_2.fastq
....

如你所见,所有剩余的文件都大于7121485。我尝试提取该值并使用条件,但尚未成功。

提前致谢!

答案1

您可以直接gzip在所有fastq文件上运行。默认情况下,它会询问您是否要覆盖现有文件:

$ gzip -k *.fastq
SRR7121484_1.fastq.gz already exists -- do you wish to overwrite (y or n)?

如果gzip无法从标准输入读取任何内容,它就会跳过这些文件:

% gzip -k *.fastq -v < /dev/null
gzip: SRR7121484_1.fastq.gz already exists -- skipping
gzip: SRR7121484_2.fastq.gz already exists -- skipping
SRR7121485_1.fastq:   -99.9% -- replaced with SRR7121485_1.fastq.gz
SRR7121485_2.fastq:   -99.9% -- replaced with SRR7121485_2.fastq.gz
SRR7121488_1.fastq:   -99.9% -- replaced with SRR7121488_1.fastq.gz
SRR7121488_2.fastq:   -99.9% -- replaced with SRR7121488_2.fastq.gz

因此,只需运行:

gzip -k *.fastq < /dev/null

相关内容