LINUX.ORG.RU
ФорумTalks

Покритикуйте скрипты


0

0

Сабж.

#!/bin/sh
cat $* | iconv -f cp866 | sed 'y/\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12 \x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\7f/\x20☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶ §▬↨↑↓→←∟↔▲▼⌂/' |less

#!/bin/sh
cat $* | iconv -f cp437 |sed 'y/\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12 \x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f/\x20☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼ ¶§▬↨↑↓→←∟↔▲▼⌂/' |less -I

Пробелы после \x12 и ‼ -- глюки форумного движка.

Локаль UTF-8. Будут ли эти скрипты правильно работать, то есть имитировать ncview при помощи less?

★★★★★

В первом в конце -I потерял.

question4 ★★★★★
() автор топика
Ответ на: комментарий от wfrr

> Это что за ...графика?

Цитирую википедию:

«CP437 (Codepage 437, DOSLatinUS) — кодовая страница, использовавшаяся в первоначальной версии IBM PC с 1981 года. CP437 послужила образцом для множества других кодировок, в том числе альтернативной кодировки для русского языка CP866

В ПЗУ видеоадаптера IBM PC был зашит шрифт для такого набора символов»

Зачем это? Чтобы смотреть бинарные файлы в less как в NC/VC/FAR без ярких ^?^W^C^Z и пр.

question4 ★★★★★
() автор топика
Ответ на: комментарий от one_more_hokum

> не кипятись

Не кипячусь :) Просто хотелось бы это как-то записать покороче.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

question4> Не годится. Права рута требует :(

А ты как думал? Вот однострочник на PERL тоже требовал. Помнится у вилфреда из-за того, что он под пользователем сидит, и не получалось завести тот однострочник :)

Quasar ★★★★★
()
Ответ на: комментарий от lazyklimm

> tr

Как его заставить понимать многобайтные символы? Тут надо заменять именно 1-байтные на 2-байтные.

question4 ★★★★★
() автор топика
Ответ на: комментарий от iRunix

> скрипты - говно

Повторю вопрос. Что конкретно не нравится? Нечитаемость? Тогда как задать диапазон? Неуниверсальность? Тогда какие есть аналоги enca? Костыльность? Тогда как обычно решают проблемы системных библиотек iconv?

question4 ★★★★★
() автор топика
Ответ на: комментарий от lazyklimm

> а до iconv это нельзя сделать?

Что сделать? Использовать sed? Тогда iconv не сможет работать, в поток добавятся двухбайтные символы взамен управляющих. Тогда и остальные замены придётся делать sed-ом, что ещё неудобнее.

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