在使用bash shell脚本批量重命名文件时需要帮助

时间:2014-08-18 18:15:51

标签: linux bash shell unix batch-file

我有以下格式的50多个文件:

abcd_vish_running_ZEBRA_20140818.dat_08-14-2014_23:08:23<br>
abcd_vish_running_ZEB-RA_20140818.dat_08-14-2014_23:08:35<br>
abcd_vish_running_ZEB_RA_20140818.dat_08-14-2014_23:08:37<br>
abcd_vish_running_RI-NG_20140818.dat_08-14-2014_23:08:42<br>
abcd_vish_running_RING_20140818.dat_08-14-2014_23:08:45<br>
abcd_vish_running_RI_NG_20140818.dat_08-14-2014_23:08:52<br>

(ZEBRA,ZEB-RA,ZEB_RA,RI-NG,RING,RI_NG仅用于显示模式)

我需要将上述文件重命名为以下格式:

abcd_vish_running_ZEBRA_20140818.dat<br>
abcd_vish_running_ZEB-RA_20140818.dat<br>
abcd_vish_running_ZEB_RA_20140818.dat<br>
abcd_vish_running_RI-NG_20140818.dat<br>
abcd_vish_running_RING_20140818.dat<br>
abcd_vish_running_RI_NG_20140818.dat <br>

现在如何使用shell脚本实现这一目标? 我对脚本编写起来相当新。请帮助。

干杯。

1 个答案:

答案 0 :(得分:0)

使用rename

rename 's/[.]dat_.*/.dat/' *.dat_*

在Bash中使用for循环:

for F in *.dat_*; do
    echo mv -- "$F" "${F/%.dat_*/.dat}"
done

确认后删除echo

使用mmv

mmv "*.dat_*" "#1.dat"