我对默认用法很满意排毒用于清理文件名,除了我并不总是想用单个下划线替换空格。想要用单个空格替换空白。
知道怎么做吗?
答案1
我不熟悉detox
,但我知道您可以使用它tr
来转换文件名,如下所示:
$ echo "a_b__c" | tr -s '_' ' '
a b c
$ echo "a b c" | tr -s ' '
a b c
显然将echo
命令替换为您的detox
行。
答案2
我对排毒不熟悉,但还有其他更灵活的批量重命名文件的方法。
随着基于 Perl 的重命名实用程序rename
(它的一个版本在 Debian 及其衍生版本以及prename
其他一些发行版上可用),您可以指定任意 Perl 代码来重命名文件。例如,这会将当前目录中所有文件名中的任何空白序列替换为单个空格:
rename 's/\s+/ /g' *
这还会删除标点符号周围的空格,并替换除.
下划线之外的任何其他标点符号和空格序列。
rename 's/\s* \s*/ /g; s/\s*([^[:alnum:]_. ])[^[:alnum:].]//g' *
如果您使用 zsh 作为 shell,则可以使用它的漂亮功能zmv
功能。放入autoload -U zmv
你的.zshrc
.这会将当前目录中文件名中的多个空格压缩为一个空格:
zmv '*' '${f// ##/ }'