/ usr / bin / ptx: ¿Puede proporcionar un caso de uso o dos?


20

Estaba revisando la lista de archivos incluidos en coreutils y pude encontrar un ejemplo de cómo podría usar personalmente todos los comandos proporcionados, excepto ptx. ¿Puedes dar uno o dos (o tres) ejemplos de uso de ptx? Cuanto más variado sea el caso de uso, mejor.

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

Respuestas:


10

Aparentemente, se usó para indexar el manual de referencia de Unix en los viejos tiempos.

En las Referencias a continuación, el artículo de Wikipedia explica qué es un índice permutado (también llamado KWIC, o "Palabra clave en contexto") y termina con el críptico:

Los libros compuestos de muchas secciones cortas con sus propios encabezados descriptivos, en particular colecciones de páginas de manual, a menudo terminaban con una sección de índice permutado, lo que permite al lector encontrar fácilmente una sección por cualquier palabra de su encabezado. Esta práctica ya no es común.

Más búsquedas revela los artículos restantes en las Referencias, que explican más sobre cómo las páginas de manual de Unix utilizaron un índice permutado. Parece que el problema principal con el que estaban lidiando es que las páginas del manual no tenían numeración continua.

Por lo que deduzco, la práctica de usar un índice permutado ahora es arcana y obsoleta.

Referencias



5

La respuesta aceptada de @Joseph R. con la historia es buena, pero veamos cómo podría usarse.

ptxgenera 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 ptxentiende la estructura del texto, en unidades lógicas de palabras y oraciones. Esto hace que la salida contextual sea ptxmás relevante cuando se trata con texto en inglés que grep.

Comparemos ptxy 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 grepestá orientado a líneas, y este párrafo es una sola línea, el grepresultado no es tan conciso o útil como el resultado de ptx.


1
Esta es obviamente la respuesta a la pregunta.
Bite Bytes

1

Puede ver un ejemplo (antiguo) de un índice permutado en línea aquí (haga clic en el enlace Índice permutado en el marco superior izquierdo).

Como alguien más ha mencionado, esto ya no es común debido a las capacidades de los motores de búsqueda y las aplicaciones de búsqueda personalizadas.


1

También conocido como una concordancia. Y siguen siendo relevantes y bastante útiles. Un buen ejemplo es identificar rápidamente los versículos de la Biblia cuando solo sabes unas pocas palabras. Otro ejemplo sería indexar todos los sonetos de Shakespeare para permitir una búsqueda rápida similar por palabra clave.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.