osx изменяют файл, кодирующий (iconv) рекурсивный

Названное форматирование

% - форматирование берет словарь (также применяет %i / % s и т.д. проверка).

>>> print "The %(foo)s is %(bar)i." % {'foo': 'answer', 'bar':42}
The answer is 42.

>>> foo, bar = 'question', 123

>>> print "The %(foo)s is %(bar)i." % locals()
The question is 123.

И так как местные жители () являются также словарем, можно просто передать это как dict и иметь %-substitions от локальных переменных. Я думаю, что это осуждено, но упрощает вещи..

Новый стиль, Форматирующий

>>> print("The {foo} is {bar}".format(foo='answer', bar=42))
19
задан ekkescorner 25 July 2009 в 13:50
поделиться

4 ответа

Комментарий Адама показал мне способ решения этой проблемы, но это был единственный синтаксис, который я заставил работать:

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);

-i ... -o ... не работает, но снова>

thx

ekke

25
ответ дан 30 November 2019 в 03:59
поделиться

, если ваша оболочка - bash, что-то вроде этого

for files in /mydisk/myfolder/*.xxx
do
  iconv -f ISO-8859-1 -t UTF-8 "$files" "${files%.xxx}-utf8.xxx"
done
3
ответ дан 30 November 2019 в 03:59
поделиться

Вы можете написать сценарий на любом языке сценариев, чтобы перебирать каждый файл в / mydisk / myfolder, проверять расширение с помощью регулярного выражения [. (. *) $], И если это "ext "запустите следующий (или аналогичный) из системного вызова.

" iconv -f ISO-8859-1 -t UTF-8 "+ file.getName () +"> "+ file.getName () +" -utf8.xxx "

Это было бы всего несколько строк в Python, но я оставляю это в качестве упражнения читателю, чтобы он подробно рассмотрел особенности поиска итерации каталога и регулярных выражений.

0
ответ дан 30 November 2019 в 03:59
поделиться

Если вы хотите сделать это рекурсивно, вы можете использовать find (1) :

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

Обратите внимание, что я использовал | при чтении вместо опции -exec в поиске (или передачи в xargs ) из-за манипуляций, которые нам нужно сделать с именем файла, а именно, отрубая .xxx (с использованием $ {file% .xxx} ) и добавлением -utf8.xxx .

0
ответ дан 30 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: