我在使用正则表达式重命名某些文件时遇到了一个(基本)问题,但是我发现没有一种解决方案似乎有效……有什么可以帮助我识别错误或提出另一种(正确的)解决方案吗?谢谢!
这些是我的文件:
378_MO_1_S17_R1.fastq.gz
378_MO_1_S17_R2.fastq.gz
378_MO_2_S2_R1.fastq.gz
378_MO_2_S2_R2.fastq.gz
我想将它们重命名为此...
378_MO_1_r323_R1.fastq.gz
378_MO_1_r323_R2.fastq.gz
378_MO_2_r323_R1.fastq.gz
378_MO_2_r323_R2.fastq.gz
...使用此命令:
rename 's/_S[0-9]{1,}_/_r323_/g' *.gz
答案 0 :(得分:1)
使用循环和参数扩展:
for fname in *.gz; do
echo mv -- "$fname" "${fname%%_S*}_r323_${fname##*_}"
done
如果输出看起来不错,请删除echo
。