2013-07-16 73 views
-3

日常以下文件顯示的名稱(每天一個,內/我的/ DIR /):的Perl:在我的電腦上更改文件

stackoverflow.20130712_0.log 
stackoverflow.20130713_0.log 

我想改變自己的名字stackoverflow.20130712和計算器.20130713,即每天用cron作業擦除「_0.log」部分。

你會推薦我的模塊或腳本?

我在CentOS

+1

你的系統是否有'rename'命令?它使用regexp替換進行重命名。 – Barmar

+0

它有mv,忘了在分區寫im即可 – ado

+0

@Barmar:我相信來自util-linux的重命名不會使用正則表達式。爲了增加混淆,還從CPAN File :: Rename模塊重命名,允許任意perl表達式。 –

回答

1

無依賴的解決方案,

perl -e 'for (@ARGV){ $t=$_; s|_0[.]log$||; rename($t,$_) }' stackoverflow.* 
+0

這太神奇了。最後「。*」的含義是什麼? :3 – ado

+0

@adriancdperu'。*'告訴shell將所有以'stackoverflow.'開頭的文件作爲perl可執行文件的參數。試試'echo stackoverflow。*'來檢查這種行爲。 –

+0

感謝您的詳細解答 – ado

相關問題