Przyjęta przez Josepha odpowiedź z historią jest dobra, ale spójrzmy, jak można ją wykorzystać.
ptx
generuje 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 ptx
rozumie strukturę tekstu, w logicznych jednostkach słów i zdań. To sprawia, że kontekstowe wyniki są ptx
bardziej odpowiednie w przypadku tekstu angielskiego niż grep.
Porównajmy ptx
i grep
uż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ż grep
jest zorientowany liniowo, a ten akapit jest jedną linią, grep
wynik nie jest tak zwięzły ani pomocny jak wynik z ptx
.