我有一些文件需要批量重命名。例如:
Jul-0961_S7_R2_001.fastq.gz
Jul-0967_S22_rep1_R1.fastq.gz
Jul-0974_S32_R2_001.fastq.gz
我需要删除文件名的S*部分,但我不知道要使用的常规正则表达式。
具体地说:
Jul-0961_S7_R2_001.fastq.gz --> Jul-0961_R2_001.fastq.gz
比如,重命名的/S*//‘*.gz是我要找的。
有没有一个能给我指路的regex巫师?提前谢谢。
发布于 2017-07-07 15:07:47
如果文件格式相同(即具有相同的下划线数),则可以使用:
"ls" | awk -F_ '{ system("mv "$0" "$1"_"$3"_"$4) }'
在这里,我们使用下划线作为分隔符,然后构建一个命令来执行系统函数。
发布于 2017-07-07 15:01:05
您应该能够使用这样的东西:s/_S[0-9]+_/_/
https://stackoverflow.com/questions/44973783
复制相似问题