osx更改文件编码(iconv)递归

ekk*_*ner 19 macos shell encoding glob iconv

我知道我可以使用以下命令在OSX下转换单个文件编码:

iconv -f ISO-8859-1 -t UTF-8 myfilename.xxx > myfilename-utf8.xxx

我必须转换一堆具有特定扩展名的文件,所以我想将文件编码从ISO-8859-1转换为UTF-8,用于文件夹/ mydisk/myfolder中的所有*.ext文件

或许有人知道如何做到这一点的语法

谢谢

EKKE

ekk*_*ner 25

Adam的评论向我展示了如何解决它,但这是我使其工作的唯一语法:

find /mydisk/myfolder -name \*.xxx -type f | \
    (while read file; do
        iconv -f ISO-8859-1 -t UTF-8 "$file" > "${file%.xxx}-utf8.xxx";
    done);
Run Code Online (Sandbox Code Playgroud)

-i ... -o ...不起作用,但是>

再次

EKKE

  • 谢谢.我没那么帮助过我.我做了`#!/ bin/bash find ./src-type f | \(同时读取文件;如果[["$ file"!=*.DS_Store*]];然后如果[["$ file"!=*-utf8*]];则iconv -f CP1251 -t UTF-8 "$ file">"$ file-utf8"; rm $ file; mv"$ file-utf8""$ file"; fi fi done);` (2认同)