如何在bash中自动将两个文件重命名为不同的名称
我有一个问题,我想知道如何在bash中自动执行此操作: 我有12个文件夹(0,1,2,3..11),每个文件夹包含如下所示的两个文件,例如,在文件夹1中,它包含:如何在bash中自动将两个文件重命名为不同的名称,bash,loops,Bash,Loops,我有一个问题,我想知道如何在bash中自动执行此操作: 我有12个文件夹(0,1,2,3..11),每个文件夹包含如下所示的两个文件,例如,在文件夹1中,它包含: 4DNFI6E4RZ9H.fastq.gz 4DNFIIN1NES7.fastq.gz 文件夹中的所有文件都不具有相同的名称 我想创建一个脚本,可以循环到每个文件夹中,并根据文件夹的名称重命名文件,例如,对于文件夹1中的文件,我想将两个文件重命名为: 1_R1.fastq.gz 1_R2.fastq.gz 2_R1.fastq.
4DNFI6E4RZ9H.fastq.gz
4DNFIIN1NES7.fastq.gz
文件夹中的所有文件都不具有相同的名称
我想创建一个脚本,可以循环到每个文件夹中,并根据文件夹的名称重命名文件,例如,对于文件夹1中的文件,我想将两个文件重命名为:
1_R1.fastq.gz
1_R2.fastq.gz
2_R1.fastq.gz
2_R2.fastq.gz
...
对于文件夹2中的文件,我希望将这两个文件重命名为:
1_R1.fastq.gz
1_R2.fastq.gz
2_R1.fastq.gz
2_R2.fastq.gz
...
那么怎么做呢?非常感谢 像这样:
#!/bin/bash
for dir in */; do
c=0
for file in $dir/*; do
mv "$file" "${file%/}_R$((++c)).fastq.gz"
done
done
ls *
像这样:
#!/bin/bash
for dir in */; do
c=0
for file in $dir/*; do
mv "$file" "${file%/}_R$((++c)).fastq.gz"
done
done
ls *