如何更改 detox 的默认使用,使其不用下划线替换空格

如何更改 detox 的默认使用,使其不用下划线替换空格

我对默认用法很满意排毒用于清理文件名,除了我并不总是想用单个下划线替换空格。想要用单个空格替换空白。

知道怎么做吗?

答案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//  ##/ }'

相关内容