1
我使用的是RHEL 5.10,我試圖從一堆文件中刪除動態日期擴展。Unix:使用動態擴展重命名文件
文件格式與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
的man
頁我的Linux說
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
可悲它不工作要麼。我用問題的屏幕grep更新瞭解決方案。 – Utsav
如果我按'filename01.gz.20160704'然後執行上面的命令,我會按照預期將'filename01.gz.20160704改名爲filename01.gz'。我的'rename'是一個到'/ usr/bin/prename'的鏈接(perl rename)。應該有另一個具有不同語法的'rename'實用程序(請參閱http://unix.stackexchange.com/questions/98070/rename-files-in-directory),但我不熟悉它。 – PSkocik
不幸的是,我在RHEL機器上看不到任何'prename'。讓我們看看我/別人能否找到一個方法,否則我會寫一個shell並將'date'放入一個變量中,並使用它,這應該起作用。無論如何感謝您的答案。 – Utsav