/ usr / bin / ptx: Czy możesz podać przypadek użycia lub dwa?

20

Przeglądałem listę plików zawartych w coreutils i mogłem wymyślić przykład, w jaki sposób mogę osobiście używać wszystkich dostarczonych poleceń z wyjątkiem ptx. Czy możesz podać jeden lub dwa (lub trzy) przykłady użycia ptx? Im bardziej zróżnicowany przypadek użycia, tym lepiej.

$ apropos ptx
ptx(1)         - produce a permuted index of file contents
dfc
źródło

Odpowiedzi:

10

Najwyraźniej był używany do indeksowania podręcznika Unix Reference w dawnych czasach.

W poniższych źródłach artykuł w Wikipedii wyjaśnia, czym jest indeks permutowany (zwany także KWIC, lub „Słowo kluczowe w kontekście”) i kończy się na zagadkę:

Książki składające się z wielu krótkich sekcji z własnymi opisowymi nagłówkami, w szczególności zbiorów stron podręcznika, często kończyły się permutowaną sekcją indeksu, umożliwiającą czytelnikowi łatwe znalezienie sekcji według dowolnego słowa z jej nagłówka. Ta praktyka nie jest już powszechna.

Więcej wyszukiwań ujawnia pozostałe artykuły w Odnośniki, które wyjaśniają więcej o tym, jak strony podręcznika uniksowego używały permutowanego indeksu. Wydaje się, że głównym problemem, z którym mieli do czynienia, było to, że strony podręcznika nie miały ciągłej numeracji.

Z tego, co zbieram, praktyka stosowania permutowanego indeksu jest teraz tajemnicza i przestarzała.

Bibliografia

Joseph R.
źródło
5

Przyjęta przez Josepha odpowiedź z historią jest dobra, ale spójrzmy, jak można ją wykorzystać.

ptxgeneruje permutowany indeks terminów („ptx”) z tekstu. Przykład jest najłatwiejszy do zrozumienia:

$ 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

Po prawej stronie widać różne słowa z wprowadzonego tekstu oraz otaczający je kontekst lewego i prawego słowa . Pierwsze słowo to „a”. Występuje na pierwszej linii, po której następuje „b” i „c” po jego prawej stronie. Drugim słowem jest „b”, które występuje w drugim wierszu z „a” po jego lewej stronie i „c” po prawej stronie. Wreszcie „c” występuje w linii trzeciej i jest poprzedzone przez „a” i „b”.

Korzystając z tego, możesz znaleźć numer wiersza i otaczające słowa do dowolnego słowa w tekście. To brzmi jak grep, prawda? Różnica polega na tym, że ptxrozumie strukturę tekstu, w logicznych jednostkach słów i zdań. To sprawia, że ​​kontekstowe wyniki są ptxbardziej odpowiednie w przypadku tekstu angielskiego niż grep.

Porównajmy ptxi grepużywając pierwszego akapitu amerykańskiego tabloidu Jamesa Ellroya :

$ 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.

Oto grep(z ręcznie dopasowanymi dopasowaniami kolorów, aby je otaczać //):

$ 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.

Oto 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.

Ponieważ grepjest zorientowany liniowo, a ten akapit jest jedną linią, grepwynik nie jest tak zwięzły ani pomocny jak wynik z ptx.

biskup
źródło
1
To jest oczywiście odpowiedź na pytanie.
Bite Bytes
1

Możesz zobaczyć (stary) przykład internetowego permutowanego indeksu tutaj (kliknij link Permutowany indeks w lewej górnej ramce).

Jak ktoś już wspomniał, nie jest to już powszechne ze względu na możliwości wyszukiwarek i niestandardowych aplikacji wyszukiwania.

evb
źródło
1

Znany również jako konkordancja. I są nadal aktualne i bardzo przydatne. Dobrym przykładem jest szybkie rozpoznawanie wersetów biblijnych, gdy znasz tylko kilka słów. Innym przykładem może być indeksowanie wszystkich sonetów Szekspira, aby umożliwić podobne szybkie wyszukiwanie według słów kluczowych.

Fred
źródło