/usr/bin/ptx: Можете ли вы привести один или два варианта использования?

/usr/bin/ptx: Можете ли вы привести один или два варианта использования?

Я просматривал список файлов, включенных в coreutils, и смог придумать пример того, как я мог бы лично использовать все предоставленные команды, кроме ptx. Можете ли вы привести один или два (или три) примера использования ptx? Чем разнообразнее вариант использования, тем лучше.

$ apropos ptx
ptx(1)         - produce a permuted index of file contents

решение1

@Joseph R. принял ответс историей все хорошо, но давайте посмотрим, как ее можно использовать.

ptxгенерирует индекс переставленного термина ("ptx") из текста. Пример наиболее понятен:

$ cat input
a
b
c

$ ptx -A -w 25 input
:1:            a b c
:2:        a   b c
:3:      a b   c

         ^^^^  ^ ^^^^-words to the input's right
         |     +-here is the actual input
         +-words to the input's left

Справа внизу вы видите разные слова из введенного текста илевый и правый контекст словаокружающие их. Первое слово — «a». Оно встречается в первой строке, за ним следуют «b» и «c» справа. Второе слово — «b», которое встречается во второй строке с «a» слева и «c» справа. Наконец, «c» встречается в третьей строке, за ним следуют «a» и «b».

Используя это, вы можете найти номер строки и окружающие слова для любого слова в тексте. Это очень похоже на grep, да? Разница в том, что ptxпонимает структуру текста в логических единицах слов и предложений. Это делает контекстный вывод ptxболее релевантным при работе с английским текстом, чем grep.

Давайте сравним ptxи grep, используя первый абзац Джеймса ЭллрояАмериканский таблоид:

$ cat text
America was never innocent. We popped our cherry on the boat over and looked back with no regrets. You can’t ascribe our fall from grace to any single event or set of circumstances. You can’t lose what you lacked at conception.

Вот grep(цветовые соответствия изменены вручную и заключены в //):

$ grep -ni you text
1:America was never innocent. We popped our cherry on the boat over and looked back with no regrets. /You/ can’t ascribe our fall from grace to any single event or set of circumstances. /You/ can’t lose what /you/ lacked at conception.

Вот ptx:

$ ptx -Afo <(echo you) text
text:1:        /back with no regrets.   You can’t ascribe our fall/
text:1:     /or set of circumstances.   You can’t lose what you/
text:1:      /. You can’t lose what   you lacked at conception.

Поскольку grepориентирован на строки, а этот абзац состоит из одной строки, grepвывод не такой лаконичный и полезный, как вывод из ptx.

решение2

По-видимому, в старые времена он использовался для индексации справочного руководства Unix.

В приведенном ниже списке литературы статья Википедии объясняет, что такое пермутированный индекс (также называемый KWIC или «Ключевое слово в контексте»), и заканчивается загадочным:

Книги, состоящие из множества коротких разделов с собственными описательными заголовками, особенно сборники страниц руководства, часто заканчивались переставленным индексным разделом, что позволяло читателю легко находить раздел по любому слову из его заголовка. Такая практика больше не распространена.

Дальнейший поиск открывает оставшиеся статьи в References, которые объясняют больше о том, как страницы man Unix использовали переставленный индекс. Похоже, что основная проблема, с которой они имели дело, заключалась в том, что страницы man не имели непрерывной нумерации.

Насколько я понимаю, практика использования пермутированного индекса в настоящее время является неактуальной и устаревшей.

Рекомендации

решение3

решение4

Вы можете увидеть (старый) пример онлайн-индекса с перестановкамиздесь (Нажмите на ссылку «Пермутированный индекс» в верхнем левом фрейме).

Как уже кто-то упомянул, это уже не так распространено из-за возможностей поисковых систем и приложений пользовательского поиска.

Связанный контент