我想批量重命名目录中的多个文件,以便从文件名中删除前面的数字和连字符。
Old file name: 2904495-XXX_01_xxxx_20130730235001_00000000.NEW New file name: XXX_01_xxxx_20130730235001_00000000.NEW
如何使用linux命令执行此操作?
这应该使它:
rename 's/^[0-9]*-//;' *
它从块的开头[0-9](即数字)开始多次,然后连字符-并将其从文件名中删除。
[0-9]
-
如果rename不在您的计算机中,则可以使用循环和mv:
rename
mv
mv "$f" "${f#[0-9]*-}"
$ ls 23-aa hello aaa23-aa $ rename 's/^[0-9]*-//;' * $ ls aa hello aaa23-aa
要么:
$ ls 23-a aa23-a hello $ for f in *; > do > mv "$f" "${f#[0-9]*-}" > done $ ls a aa23-a hello