我需要在所有子文件夹中找到并替换日文文件名中的字符串。
我尝试了所有常见的查找和替换命令,但它们似乎不适用于日文字符。
注意:我不想删除所有日文字符,只查找并替换文件名中的某个字符串。
答案 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'