Linux在文件名上查找并替换日语字符串

时间:2015-03-02 09:27:54

标签: linux replace find

我需要在所有子文件夹中找到并替换日文文件名中的字符串。

我尝试了所有常见的查找和替换命令,但它们似乎不适用于日文字符。

注意:我不想删除所有日文字符,只查找并替换文件名中的某个字符串。

2 个答案:

答案 0 :(得分:0)

这些是unicode字符,因此您可以使用例如

找到它们

find | grep -P '[\x3041-\x3096]'(平假名)

find | grep -P '[\x30A0-\x30FF]'(片假名)

但您需要首先找出要替换的确切字符(unicode表示法)。

然而,可能是您的编码不同。如果您需要更改编码,请使用convmv,例如

convmv -f EUC-JP -t UTF-8 *

更新。此脚本适用于您的示例。我只是复制/粘贴角色。

SEARCH="名."  
REPLACE="_."

for x in *$CHAR*; do
 rename  "s/$SEARCH/$REPLACE/" $x
done

答案 1 :(得分:0)

尝试了许多命令之后,这很有效:

找到。 -type f | xargs重命名' s / textofind / newtext / g'

我没有输入unicode符号,我可以直接在命令行上输入日文字符。

对于只想查找和删除字符串的用户,可以使用如下命令:

找到。 -type f | xargs重命名' s / textofind // g'