在bash中替换错误显示的特殊字符

时间:2014-04-10 07:11:26

标签: bash special-characters file-rename batch-rename

我使用WinSCP将大量文件(包括文件夹结构)上传到我的Ubuntu 12.04 LTS服务器。 目标是在Owncloud中访问这些文件。

但是,所有包含特殊字符的文件(如德语元音)都会导致问题。在Ownclouds视图中,他们的名字被截断为特殊字符,并试图查看该文件夹或文件将您发送回文件夹根目录。

使用ls,特殊字符始终显示为问号,例如“Moterschwei?en1.jpg” 什么工作是通过shell中的“mv”手动重命名它们。正确插入特殊字符,例如对于这个例子,“Motorschweißen1.jpg”确实有效,但对所有人来说这样做需要很长时间。

使用find。 -name“”不会产生任何命中。

有没有办法替换所有这些特殊字符,例如用下划线?

1 个答案:

答案 0 :(得分:1)

尝试命令rename

rename 'y/\W/_' *

上述命令将用_替换所有非字母数字字符。有关perl regex表达式的文档,请参阅http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operatorshttp://perldoc.perl.org/perlre.html#Special-Backtracking-Control-Verbs