ПроХостер > блог > Администрација > Дискусија: стандардни УНИКС услужни програми које је мало људи користило и још увек користи
Дискусија: стандардни УНИКС услужни програми које је мало људи користило и још увек користи
Неделю назад Дуглас Макилрой (Douglas McIlroy), разработчик конвейера UNIX и автор понятия «компонентно-ориентированное программирование», рекао об интересных и необычных UNIX-программах, не нашедших широкого применения. Публикация запустила активное обсуждение на Hacker News. Мы собрали самое интересное и будем рады, если вы присоединитесь к дискуссии.
В UNIX-подобных операционных системах есть стандартный набор инструментов для форматирования текста. Утилита штампар позволяла просматривать документ на наличие опечаток и гапаксов — слов, встречающихся в материале только один раз. Что интересно, для поиска опечаток программа не користи словари. Она опирается только на информацию в файле и проводит частотный анализ по триграммам (последовательность из трех символов). При этом все необходимые счетчики се чувају в массиве 26x26x26. По словам Дугласа Макилроя, такого объема памяти едва хватало для нескольких однобайтных счётчиков. Поэтому в целях экономии их писали в логарифмическом виде.
Сегодня typo заменили более современные и точные программы проверки правописания на основе словарей. Однако про инструмент все еще помнят — несколько лет назад энтузиаст уведен реализацию typo на Go. Репозиторий обновляется до сих пор.
Еще один инструмент для работы с документами из 80-х — пакет Writer’s Workbench от Лоринды Черри (Lorinda Cherry) и Нины Макдональд (Nina McDonald) из Bell Labs. В его состав укључено инструменты для определения частей речи и стиля документа, поиска тавтологий и излишне сложных предложений. Утилиты разрабатывали в качестве подспорья для студентов, и одно время их користи учащиеся Государственного университета Колорадо в США. Но к началу девяностых о Writer’s Workbench позабыли, потому что его не включили в Version 7 Unix. Однако этот инструмент продолжил дорогу подражателям — например, граматика для IBM PC.
В UNIX также имеются стандартные средства, упрощающие работу с формулами. Есть препроцессор языка для оформления математических выражений екн. Он примечателен тем, что для отображения формулы разработчику достаточно описать её простыми словами и символами. Ключевые слова позволяют смещать математические знаки по вертикали и горизонтали, менять их размеры и другие параметры. Если передать утилите строку:
sum from { k = 1 } to N { k sup 2 }
На выходе будет сгенерирована следующая формула:
В 1980–1990-х eqn помогао ИТ-специалистам писать мануалы к программному обеспечению. Но позже его заменила система LaTeX, которую користи даже Habr. Но eqn — это первый инструмент подобного класса, остающийся частью UNIX-подобных ОС.
Рад са датотекама
В тематическом треде резиденты Hacker News отметили несколько редко используемых утилит для работы с файлами. Одной из них биоЦомм для их сравнения. Это — упрощенный аналог дифф, заточенный под работу в скриптах. Его написао сам Ричард Столлман (Richard Stallman) вместе с Дэвидом Маккензи (David MacKenzie).
Вывод программы состоит из трех столбцов. В первую колонку попадают значения, уникальные для первого файла, во второй — уникальные для второго файла. Третий столбец включает общие значения. Для корректной работы comm сравниваемые документы должны быть лексически отсортированы. Поэтому один из резидентов площадки предложио работать с утилитой в следующем виде:
comm <(sort fileA.txt) <(sort fileB.txt)
Comm удобно использовать для проверки написания слов. Достаточно сравнивать их с эталонным документом-словарем. Учитывая тонкости, связанные с необходимостью сортировки файлов, есть мишљење, что Столлман и Маккензи написали свою утилиту исключительно для этого юзкейса.
Также участник обсуждения на HN приметно возможности оператора паста, которые были для него неочевидны. Он позволяет чередовать потоки данных или разделить один поток на две колонки при выводе:
Један од корисника приметио, что часто для выполнения этих простых операций применяют не самые оптимальные решения: начиная с фмт, ex и завршетак mlr с јота и rs.
Какие стандартные возможности UNIX-подобных операционных систем стали открытием для вас?