我需要重命名目錄中的所有文件。源文件名的一些例子:更改 - 到。對於目錄中的所有文件
alpha--sometext.381928
comp--moretext.7294058
得到的文件將被重命名爲:
alpha.sometext.381928
comp.moretext.7294058
之前和之後的字符數 - 是不洽。
該腳本需要在當前安裝的Ubuntu和FreeBSD上運行。這些是瘦LAMP服務器,因此只安裝了必要的軟件包。
感謝
我需要重命名目錄中的所有文件。源文件名的一些例子:更改 - 到。對於目錄中的所有文件
alpha--sometext.381928
comp--moretext.7294058
得到的文件將被重命名爲:
alpha.sometext.381928
comp.moretext.7294058
之前和之後的字符數 - 是不洽。
該腳本需要在當前安裝的Ubuntu和FreeBSD上運行。這些是瘦LAMP服務器,因此只安裝了必要的軟件包。
感謝
通過慶典:
for file in *--*; do
mv "${file}" "${file/--/.}"
done
神奇的是在${file/--/.}
這是${file}
值除與各 「 - 」 更改爲 「」。
作爲純shell的替代方案,您可以使用rename
這個Perl自帶的標準實用程序。簡單的情況更方便。
rename 's/--/./' *
這真的很酷。不知道。 – tangens 2010-05-21 20:40:37
不錯的一個。我試圖寫一篇,但你打敗了我! – Josh 2010-05-21 20:20:34
你應該總是引用任何包含文件名的變量。 'mv「$ {file}」「$ {file/- /。}」' – 2010-05-21 21:03:39
@DennisWilliamson - 我已經更新了我的答案,但確切地說,您需要引用任何可能有空格的東西。 – 2010-05-21 21:54:04