cp1252 to utf-8 использует iconv для всех файлов в папке

Мне нужно конвертировать файлы cp1252 в UTF-8 с помощью iconv, и это хорошо работало для одного файла, но когда я пробую несколько файлов, это не работает.

я пытаюсь это

find . -type f -name '*.csv' -print -exec iconv -f cp1252 -t utf-8 {inputFolderPath} -o {outputFolderPath}\

это говорит о том, что

Файл не найден - '*.csv'

1 ответ

Если вы работаете в Linux/UNIX, это не относится. Так как вы использовали cmd тег, предполагается, что это Microsoft Windows. Если нет, пожалуйста, удалите cmd тег.

Это может быть неверные параметры командной строки для iconv,

SET "outputFolderPath=%TEMP%

FOR /F "usebackq tokens=*" %%f IN (`DIR /A:-D "*.csv"`) DO (
    iconv -f cp1252 -t utf-8 "%%~ff" -o "%outputFolderPath%\%%~nxf"
)

Если все файлы находятся в одной папке / каталоге, вы можете использовать цикл for и записать файлы результатов в подкаталог. Код для bash:

$ mkdir new
$ for f in *.csv; do iconv -f cp1252 -t utf-8 "$f" > new/"$f"; done

Заметки:

  1. Некоторые версии iconv не поддерживают параметр -o, но стандартный вывод может быть перенаправлен в файл.
  2. Заключите имена файлов в двойные кавычки, чтобы избежать проблем с пробелами.
Другие вопросы по тегам