![如何使用for循环重命名多个fastq文件](https://linux22.com/image/228539/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8for%E5%BE%AA%E7%8E%AF%E9%87%8D%E5%91%BD%E5%90%8D%E5%A4%9A%E4%B8%AAfastq%E6%96%87%E4%BB%B6.png)
我有几个这样的文件:
sub_TK273759_R1.fastq
sub_TK273759_R2.fastq
sub_TK273763_R1.fastq
sub_TK273763_R2.fastq
sub_TK273766_R1.fastq
sub_TK273766_R1.fastq
如何重命名所有文件,如下所示:
TK273759_R1.fastq
TK273759_R2.fastq
TK273763_R1.fastq
TK273763_R2.fastq
TK273766_R1.fastq
TK273766_R2.fastq
答案1
有两个版本rename
。根据您拥有的版本,其中一个适合您:
rename sub_ '' sub_* # rename -V -> "rename from util-linux 2.33.1"
rename 's/^sub_//' sub_* # rename -V -> "Unknown option: V"
如果目标文件名已经存在,这两个将反对。
或者,您可以使用循环,但效率要低得多:
for f in sub_*
do
mv "$f" "${f#sub_}"
done
如果目标文件名已经存在,这将默默地覆盖它