我需要在所有子文件夾中查找並替換日文文件名中的字符串。Linux在文件名中查找並替換日文字符串
我試過所有常見的查找和替換命令,但它們似乎不適用於日文字符。
注意:我不想刪除所有日文字符,只發現並替換文件名中的某個字符串。
我需要在所有子文件夾中查找並替換日文文件名中的字符串。Linux在文件名中查找並替換日文字符串
我試過所有常見的查找和替換命令,但它們似乎不適用於日文字符。
注意:我不想刪除所有日文字符,只發現並替換文件名中的某個字符串。
這些都是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
謝謝,我認爲我們差不多在那裏,當我用find | grep -P'[\ x3041- \ x3096]'「我在字符類消息中出現亂序」,當我更改要搜索的字符的Unicode時,它只是打印文件夾中的所有文件,但沒有替換任何東西 – chinaski 2015-03-03 02:17:24
嘗試許多命令後這工作:
發現。 -type f | xargs重命名's/textofind/newtext/g'
我不必輸入unicode符號,我可以在命令行上直接輸入日文字符。
對於只是想找到並刪除該字符串的用戶,你可以使用這樣的命令:
發現。 -type f | xargs重命名's/textofind // g'
任何文件名示例?例如: – Rups 2015-03-02 09:42:50
例如:東京_名.php,我想替換最後一個字符名 – chinaski 2015-03-03 02:14:34