我在目录中有几个fastq.gz文件。我想删除每个文件名的部分内容。
以下是文件名:
RES_1448_001_S289_L001_R1_001.fastq.gz
RES_1448_001_S289_L001_R2_001.fastq.gz
RES_1448_012_S300_L001_R1_001.fastq.gz
RES_1448_012_S300_L001_R2_001.fastq.gz
我想删除之后的S和3位数。我希望在删除后能够这样做
RES_1448_001_R1_001.fastq.gz
RES_1448_001_R2_001.fastq.gz
RES_1448_012_R1_001.fastq.gz
RES_1448_012_R2_001.fastq.gz
之前我问了一个类似的问题,但是被建议请求一个新问题来满足我现在的确切要求。
答案 0 :(得分:1)
使用此bash
,regEx
可以帮到您。
#!/bin/bash
for file in *.fastq.gz
do
if [[ $file =~ ^(.*)S([[:digit:]]{3})_L([[:digit:]]{3})_(.*)$ ]]
then
start="${BASH_REMATCH[1]}"
end="${BASH_REMATCH[4]}"
mv -- "$file" "${start}${end}"
fi
done
答案 1 :(得分:1)
使用rename
。
rename 's/S\d{3}_//' *.fastq.gz