/ usr / bin / ptx: Чи можете ви надати випадку використання або два?


20

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

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

Відповіді:


10

Мабуть, його використовували для індексації посібника Unix Reference в старі часи.

У наведених нижче посиланнях стаття у Вікіпедії пояснює, що таке перестановлений індекс (його також називають KWIC або "Ключове слово в контексті") і закінчується криптовалютою:

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

Більше пошуку виявляють статті, що залишилися в Посиланнях, де пояснюється більше про те, як сторінки man Unix використовували перестановлений індекс. Мабуть, головним питанням, з яким вони мали справу, є те, що підручні сторінки не мали постійної нумерації.

З того, що я збираю, практика використання перестановленого індексу зараз є прихованою та застарілою.

Список літератури



5

@ Прийнята відповідь Джозефа Р. з історією хороша, але давайте подивимось, як вона може бути використана.

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

Праворуч ви бачите різні слова з вводу та лівий і правий контекст слова, що їх оточує. Перше слово - «а». Він трапляється на першій лінії і знаходиться праворуч "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.


1
Очевидно, це відповідь на питання.
Кусайте байтів

1

Ви можете побачити (старий) приклад онлайн переставлені індексу тут (Натисніть на посилання індексу переставляються в верхньому лівому кадрі).

Як уже хтось згадував, це більше не є поширеним через можливості пошукових систем та спеціальних пошукових програм.


1

Також відомий як конкорданс. І вони все ще актуальні і досить корисні. Хорошим прикладом є швидке виявлення біблійних віршів, коли ви знаєте лише кілька слів. Іншим прикладом може бути індексація всіх сонетів Шекспіра, щоб увімкнути подібний швидкий пошук за ключовими словами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.