将文件从* _pattern_ *重命名为* .pattern

时间:2014-03-18 07:06:34

标签: unix file-rename

我想将文件abcd.dfkk_kjjsd_20140313_2341替换为abcd.dfkk_kjjsd.20140313

我正在使用以下命令。

ls "abcd.dfkk_kjjsd_20140313_2341" | awk -F_ '{$(NF)="";}1' OFS=_  |
sed 's/\(.*\)_/\1/' |
sed 's/\(.*\)_/\1./' | awk '{print("mv "$1" "$1)}' | /bin/ksh

请建议更好的方法来实现这一目标。

*_20140313_*应重命名为*.20140313

2 个答案:

答案 0 :(得分:0)

您可以使用rename命令,

rename 's/^(.*)_[^_]*$/$1/' *20140313*

答案 1 :(得分:0)

你可以用这个

rename 's/(_(\d+)_)\d+$/.$2/' *20140313*

rename的第一个参数是Perl表达式。