Я хочу изменить кодировку txt-файла.Завершение записи файла приводит к 0 байтам
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > filename.txt
Я не хочу менять имя файла, но когда я делаю это, я получаю файл с 0 байтами.
Я хочу изменить кодировку txt-файла.Завершение записи файла приводит к 0 байтам
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > filename.txt
Я не хочу менять имя файла, но когда я делаю это, я получаю файл с 0 байтами.
Вы получаете 0 байт, потому что вы перезаписываете свой входной файл.
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > output.txt &&
mv output.txt filename.txt
Как @chepner и @Garret Hyde указывают, оболочка разбирает переназначения ввода/вывода, прежде всего и более пишущая filename.txt
перед тем Iconv получает шанс прочитать его. Вы должны сделать эту операцию в два этапа:
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > tmpfile.txt &&
mv tmpfile.txt filename.txt
&&
гарантирует, что чрезмерно написание исходного файла происходит только если команда Iconv успешно.
В частности, '> filename.txt' заставляет оболочку открывать (и усекать) файл до его запуска' iconv'. – chepner