我正在使用RHEL 5.10,我试图从一堆文件中删除动态日期扩展。
文件格式类似于filename01.gz.20160704
,其中最后一部分date
是动态的。我希望将其重命名为filename01.gz
当我尝试重命名如下时,它可以正常工作
rename gz.20160704 gz filename01.gz.20160704
输出:filename01.gz
但是,当我尝试重命名时,它不起作用
rename gz.* gz filename01.gz.20160704
我尝试搜索其他答案,在其中一些答案中,他们使用了如下所示的重命名,但遗憾的是,这对我来说也不起作用。
rename 's/gz*/gz/' filename01.gz.20160704
rename 's/gz.*/gz/' filename01.gz.20160704
我的linux的man
页面说
For example, given the files foo1, ..., foo9, foo10, ..., foo278, the commands rename foo foo0 foo? rename foo foo0 foo??
有人可以帮助我吗,或者我可以使用其他方法吗?
更新:添加了@PSkocik提供的解决方案,但它也无法正常工作。
$> ls -ltr filename01*
-rw-rw----+ 1 foo foo 0 Jul 4 08:34 filename01.gz.20160704
$> rename -n 's/\.gz\.[^.]*/.gz/' filename01.gz.*
$> echo $?
0
$> ls -ltr filename01*
-rw-rw----+ 1 foo foo 0 Jul 4 08:34 filename01.gz.20160704
答案 0 :(得分:1)
prename
(perl-rename):
rename -n 's/\.gz\.[^.]*/.gz/' filename01.gz.*
使用mv和POSIX shell:
for f in *.gz.*; do mv "$f" "${f%.*}"; done