CAT, Больше и Меньше просто делает их задание отображения файла. Перевод между кодировкой не находится в их должностной инструкции. Кодирование новых строк не является проблемой, поскольку CRLF отображен точно так же, как нормаль, заканчивающая LF, но Ваш терминал, вероятно, ожидает UTF-8-encoded текст, который является фактическим стандартом в наше время.
Luit переводит между поддерживаемой кодировкой и UTF-8. Вы говорите Luit который, кодируя для перевода путем установки LC_CTYPE
переменная среды или с -encoding
опция. Например, для отображения латинского 1 (иначе ISO 8859-1) файл:
LC_CTYPE=en_US luit less somefile
luit -encoding ISO8859-1 less somefile
Если файл находится в некотором экзотическом кодировании, которое не поддерживает Luit, можно передать его по каналу через программу переводчика. Iconv поддерживает много кодировок.
iconv -f latin1 somefile
iconv -f latin1 somefile | less