আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে

Неделю назад Дуглас Макилрой (Douglas McIlroy), разработчик конвейера UNIX и автор понятия «компонентно-ориентированное программирование», আমাকে বলা об интересных и необычных UNIX-программах, не нашедших широкого применения. Публикация запустила активное обсуждение на Hacker News. Мы собрали самое интересное и будем рады, если вы присоединитесь к дискуссии.

আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে
Фото - Virginia Johnson - আনস্প্ল্যাশ

Работа с текстом

В UNIX-подобных операционных системах есть стандартный набор инструментов для форматирования текста. Утилита ছাপাখানার বিদ্যায় বিশারদ позволяла просматривать документ на наличие опечаток и гапаксов — слов, встречающихся в материале только один раз. Что интересно, для поиска опечаток программа ব্যবহার করে না словари. Она опирается только на информацию в файле и проводит частотный анализ по триграммам (последовательность из трех символов). При этом все необходимые счетчики রাখা হয় в массиве 26x26x26. По словам Дугласа Макилроя, такого объема памяти едва хватало для нескольких однобайтных счётчиков. Поэтому в целях экономии их писали в логарифмическом виде.

Сегодня typo заменили более современные и точные программы проверки правописания на основе словарей. Однако про инструмент все еще помнят — несколько лет назад энтузиаст পেশ реализацию typo на Go. Репозиторий обновляется до сих пор.

Еще один инструмент для работы с документами из 80-х — пакет Writer’s Workbench от Лоринды Черри (Lorinda Cherry) и Нины Макдональд (Nina McDonald) из Bell Labs. В его состав অন্তর্ভুক্ত инструменты для определения частей речи и стиля документа, поиска тавтологий и излишне сложных предложений. Утилиты разрабатывали в качестве подспорья для студентов, и одно время их ব্যবহৃত учащиеся Государственного университета Колорадо в США. Но к началу девяностых о Writer’s Workbench позабыли, потому что его не включили в Version 7 Unix. Однако этот инструмент продолжил дорогу подражателям — например, Grammatiken для IBM PC.

В UNIX также имеются стандартные средства, упрощающие работу с формулами. Есть препроцессор языка для оформления математических выражений eqn. Он примечателен тем, что для отображения формулы разработчику достаточно описать её простыми словами и символами. Ключевые слова позволяют смещать математические знаки по вертикали и горизонтали, менять их размеры и другие параметры. Если передать утилите строку:

sum from { k = 1 } to N { k sup 2 }

На выходе будет сгенерирована следующая формула:

আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে

В 1980–1990-х eqn সাহায্য করেছে ИТ-специалистам писать мануалы к программному обеспечению. Но позже его заменила система LaTeX, которую ব্যবহারসমূহ даже Habr. Но eqn — это первый инструмент подобного класса, остающийся частью UNIX-подобных ОС.

ফাইল সঙ্গে কাজ

В тематическом треде резиденты Hacker News отметили несколько редко используемых утилит для работы с файлами. Одной из них মনে হচ্ছিল Comm для их сравнения. Это — упрощенный аналог পরিবর্তন, заточенный под работу в скриптах. Его আমি লিখেছি сам Ричард Столлман (Richard Stallman) вместе с Дэвидом Маккензи (David MacKenzie).

Вывод программы состоит из трех столбцов. В первую колонку попадают значения, уникальные для первого файла, во второй — уникальные для второго файла. Третий столбец включает общие значения. Для корректной работы comm сравниваемые документы должны быть лексически отсортированы. Поэтому один из резидентов площадки তিনি প্রদত্ত работать с утилитой в следующем виде:

comm <(sort fileA.txt) <(sort fileB.txt)

Comm удобно использовать для проверки написания слов. Достаточно сравнивать их с эталонным документом-словарем. Учитывая тонкости, связанные с необходимостью сортировки файлов, есть দৃশ্য, что Столлман и Маккензи написали свою утилиту исключительно для этого юзкейса.

আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে
Фото - Marnix Hogendoorn - আনস্প্ল্যাশ

Также участник обсуждения на HN তিনি উল্ল্যেখ করেছিলেন возможности оператора পেস্ট, которые были для него неочевидны. Он позволяет чередовать потоки данных или разделить один поток на две колонки при выводе:

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

ব্যবহারকারীদের একজন খেয়াল, что часто для выполнения этих простых операций применяют не самые оптимальные решения: начиная с fmt, ex এবং শেষ মিলি с লেশ и rs.

Какие стандартные возможности UNIX-подобных операционных систем стали открытием для вас?

আমরা আমাদের কর্পোরেট ব্লগে যা লিখি:

আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে কিভাবে ডোমেইন নাম সিস্টেম বিকশিত হয়েছে: ARPANET যুগ
আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে ডোমেইন নেম সিস্টেমের ইতিহাস: প্রথম DNS সার্ভার
আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে История DNS: когда доменные имена стали платными
আলোচনা: স্ট্যান্ডার্ড ইউনিক্স ইউটিলিটি যা খুব কম লোক ব্যবহার করে এবং এখন ব্যবহার করে История системы доменных имен: «войны» протоколов

উত্স: www.habr.com

একটি মন্তব্য জুড়ুন