我有一些文件需要批量重命名。例如:
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 / S * //'* .gz就是我要找的东西。
那里有一个可以告诉我路由的正则表达式向导吗?提前谢谢。
答案 0 :(得分:3)
您应该可以使用以下内容:s/_S[0-9]+_/_/
答案 1 :(得分:2)
如果文件格式相同(即下划线数量相同,则可以使用:
"ls" | awk -F_ '{ system("mv "$0" "$1"_"$3"_"$4) }'
这里我们使用下划线作为分隔符,然后构建一个使用系统函数执行的命令