我在目录中有以下文件:
./PBMCs/SRR1_1.fastq
./PBMCs/SRR1_2.fastq
./Monos/SRR2.fastq
./Monos/SRR3.fastq我想根据键值对的文件将SRR#更改为信息更丰富的名称:
SRR1 pbmc-1
SRR2 mono-1
SRR3 mono-2并将文件重命名为:
./PBMCs/pbmc-1_1.fastq
./PBMCs/pbmc-1_2.fastq
./Monos/mono-1.fastq
./Monos/mono-2.fastq我所能做的就是循环遍历原始文件的列表,然后循环遍历名称Change.txt文件的行并替换字符串。但是,我不知道如何实现这个,或者它是否是一个很好的方法来处理这个问题。
发布于 2022-10-01 04:02:02
假设所有*.fastq都有一个子目录深度,这应该可以正常工作:
while read old new; do
for fastq in ./*/"$old"*.fastq; do
new_name=$new${fastq##*/"$old"}
echo mv "$fastq" "${fastq%/*}/$new_name"
done
done <name-change.txt如果输出看起来不错,请删除echo。
https://stackoverflow.com/questions/73915635
复制相似问题