【发布时间】:2016-11-24 14:49:52
【问题描述】:
我正在尝试使用bash 重命名特定的file type,即.bam.bai,并且无法删除文件名中第二个下划线_ 之后的文本。目前我只得到一个在第一个_ 之后重命名的文件,我认为其他两个文件被删除,因为它们是重复的。谢谢你,祝你假期愉快:)。
/home/cmccabe/example/folder 中的文件
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"之类的调试行? -
您的代码从新名称中删除了
_009_子字符串。${file%%_[0-9][0-9][0-9]_*}扩展为IonXpress。
标签: bash