我试图使用bash
重命名一个特定的file type
,它是.bam.bai
并且无法删除文件名中第二个下划线_
后面的文本。目前我只得到一个文件返回第一个_
后重命名,另外两个文件被删除,我会假设因为它们是重复的。谢谢你,祝你度过愉快的假期:)。bash重命名目录中的特定文件类型
文件到/ home/cmccabe /示例/文件夹
IonXpress_007_MEVxz_R_2016_11_18_10_45_10_user_S5-00580-14-Medexome.bam.bai
IonXpress_008_MEVxx_R_2016_11_18_10_45_10_user_S5-00580-14-Medexome.bam.bai
IonXpress_009_MEVxy_R_2016_11_18_10_45_10_user_S5-00580-14-Medexome.bam.bai
期望的输出
IonXpress_007.bam.bai
IonXpress_008.bam.bai
IonXpress_009.bam.bai
击
for file in /home/cmccabe/example/folder/*.bam.bai; do
mv -- "$file" "${file%%_[0-9][0-9][0-9]_*}.bam.bai
done
电流输出
IonXpress
除了在'mv'命令中缺少双引号字符,你是否尝试了一个常识选项,比如在循环中包含一个调试行,比如'echo mv - “$ file”“$ {file %% _ [0-9] [ 0-9] [0-9] _ *}。bam.bai“'? – Jdamian
您的代码从新名称中删除'_009_'子字符串。 '$ {file %% _ [0-9] [0-9] [0-9] _ *}'为'IonXpress'扩展。 – Jdamian