La respuesta aceptada de @Joseph R. con la historia es buena, pero veamos cómo podría usarse.
ptx
genera un índice de término permutado ("ptx") a partir del texto. Un ejemplo es más fácil de entender:
$ 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
Abajo a la derecha verá las diferentes palabras de la entrada y el contexto de las palabras izquierda y derecha que las rodean. La primera palabra es "a". Ocurre en la línea uno y es seguido por "b" y "c" a su derecha. La segunda palabra es "b", que aparece en la línea dos con "a" a su izquierda y "c" a su derecha. Finalmente, "c" aparece en la línea tres y continúa con "a" y "b".
Con esto, puede encontrar el número de línea y las palabras que rodean a cualquier palabra en un texto. Esto suena mucho como grep
, ¿eh? La diferencia es que ptx
entiende la estructura del texto, en unidades lógicas de palabras y oraciones. Esto hace que la salida contextual sea ptx
más relevante cuando se trata con texto en inglés que grep.
Comparemos ptx
y grep
, usando el primer párrafo del American Tabloid de James Ellroy :
$ 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.
Aquí está grep
(con las coincidencias de color cambiadas manualmente para estar rodeadas por //
):
$ 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.
Aquí está 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.
Debido a que grep
está orientado a líneas, y este párrafo es una sola línea, el grep
resultado no es tan conciso o útil como el resultado de ptx
.