У меня есть каталог, который содержит как кодированные файлы ISO-8859, так и UTF8. Я хочу преобразовать все ISO-файлы в кодировку UTF8 и оставить файлы UTF8 нетронутыми. До сих пор, у меня есть это:Обнаружение и преобразование кодировки для списка файлов
for isoFile in `file exports/invoice/* | grep "ISO-8859"`; do iconv -f iso-8859-1 -t utf-8 "$isoFile" -o "$isoFile"; done
Проблема заключается в том, что file exports/invoice/* | grep "ISO-8859"
возвращает список файлов в этом формате:
exports/invoice/2014.03547.html: HTML document, ISO-8859 text, with very long lines, with CRLF, LF line terminators
, который, конечно, не будет работать на Iconv. Мне нужно извлечь имя файла из этой строки и запустить его через значок.
Спасибо за ваш ответ. Для полноты всей команды для преобразования кодировки становится: для файла в 'file export/invoice/* | grep "ISO-8859" | awk -F ':' '{print $ 1}' '; do iconv -f iso-8859-1 -t utf-8 "$ file" -o "$ {file}"; сделанный – ODaniel