LINUX.ORG.RU

Глюк с iconv


0

0

Почему у меня скрипт

#!/bin/bash
iconv $1 -f cp1251 -t koi8-r|cat >$1
перекодирует файл нормально из вин в кои, а скрипт

#!/bin/bash
iconv $1 -f cp1251 -t koi8-r -o $1

пишет файл нулевой длины?

anonymous

рекомендую разобраться и понять работу потоков ввода/вывода :-)

anonymous
()

Т.е. ты хочешь сказать, что для юникса читать из файла и одновременно писать в файл - неподъемная задача?

Странно но iconv $1 -f cp1251 -t koi8-r -o new выводит нормально в новый файл new. Почему в себя не может вывести?

anonymous
()

ну а ты подумай? iconv открывает нулевой файлик наверняка с O_TRUNC. дальнейшее -- очевидно. и вообще -- изврат это. что если кодировка из -- 4, 2 байта, или даже utf-8, а целевая -- 8 бит?

dmiceman ★★★★★
()

#!/bin/bash
cat $1|iconv -f cp1251 -t koi8-r |cat >$1

Вот такой скрипт работает. Собсно если кто скажет, какой есть стандартный способ перевести все файлы во всех подкаталогах некоего каталога, то мне больше ничего и не надо.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.