Shell
如何通過替換文件名中的單詞來重命名多個文件?
將 ACDC 替換為 AC-DC
例如我們有這些文件
ACDC - 搖滾樂不是噪音污染.xxx
ACDC - Rocker.xxx
ACDC - 拍攝到驚險刺激.xxx
我希望他們成為:
AC-DC - Rock N’ Roll Ain’t Noise Pollution.xxx
AC-DC - Rocker.xxx
AC-DC - 射擊驚險.xxx
我知道 sed 或 awk 用於此操作。我無法用Google搜尋任何東西,所以我正在尋求你的幫助 =) 你能否為這項任務提供完整的工作 shell 命令?
rename 's/ACDC/AC-DC/' *.xxx
從
man rename
DESCRIPTION "rename" renames the filenames supplied according to the rule specified as the first argument. The perlexpr argument is a Perl expression which is expected to modify the $_ string in Perl for at least some of the filenames specified. If a given filename is not modified by the expression, it will not be renamed. If no filenames are given on the command line, filenames will be read via standard input.
例如,要重命名與“*.bak”匹配的所有文件以去除副檔名,您可能會說
rename 's/\.bak$//' *.bak
要將大寫名稱轉換為小寫,您可以使用
rename 'y/A-Z/a-z/' *