使用重命名替换文件名 [英] substitute file names using rename

查看:70
本文介绍了使用重命名替换文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过替换以_"开头的所有字符后跟八个大写字母并仅保留扩展名来重命名文件名.

I want to rename files names by substituting all the characters starting from "_ " followed by eight capital letter and keep only the extension.

4585_10_148_H2A119Ub_GTCTGTCA_S51_mcdf_mdup_ngsFlt.fm
4585_10_148_H3K27me3_TCTTCACA_S51_mcdf_mdup_ngsFlt.fm
4585_27_128_Bap1_Bethyl_ACAGATTC_S61_mcdf_mdup_ngsFlt.fw
4585_32_148_1_INPUT_previous_AGAGTCAA_S72_mcdf_mdup_ngsFlt.bw

预期输出

4585_10_148_H2A119Ub.fm
4585_10_148_H3K27me3.fm
4585_27_128_Bap1_Bethyl.fm
4585_32_148_1_INPUT_previous.fm

推荐答案

试试这个:

for f in *; do
    target=$(echo "${f}" | sed -E 's/_[[:upper:]]{8}.*\././')
    mv "${f}" "${target}"
done

关键是sed-E 参数,因为它启用扩展的正则表达式.

The key thing is the -E argument to sed, since it enables expanded regular expressions.

这篇关于使用重命名替换文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆