/ usr / bin / ptx: puoi fornire un caso d'uso o due?


20

Stavo esaminando l'elenco dei file inclusi in coreutils e sono riuscito a trovare un esempio di come avrei potuto usare personalmente tutti i comandi forniti tranne ptx. Puoi dare uno o due (o tre) esempi di utilizzo di ptx? Più vario è il caso d'uso, meglio è.

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

Risposte:


10

Apparentemente, era usato per indicizzare il manuale di riferimento Unix ai vecchi tempi.

Nei riferimenti seguenti, l'articolo di Wikipedia spiega cos'è un indice permutato (chiamato anche KWIC, o "Parola chiave nel contesto") e termina con il criptico:

I libri composti da molte brevi sezioni con le loro intestazioni descrittive, in particolare raccolte di pagine di manuali, spesso terminavano con una sezione di indice permutata, consentendo al lettore di trovare facilmente una sezione con qualsiasi parola dalla sua intestazione. Questa pratica non è più comune.

Ulteriori ricerche rivelano gli articoli rimanenti nei Riferimenti, che spiegano di più su come le pagine man di Unix usavano un indice permutato. Sembra che il problema principale da affrontare sia che le pagine man non hanno una numerazione continua.

Da quello che raccolgo, la pratica di utilizzare un indice permutato è ora arcana e obsoleta.

Riferimenti



5

La risposta accettata da @Joseph R. con la storia è buona, ma diamo un'occhiata a come potrebbe essere usata.

ptxgenera un indice dei termini permutati ("ptx") dal testo. Un esempio è più semplice da capire:

$ 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

In basso a destra vengono visualizzate le parole diverse dall'input e il contesto di parole sinistra e destra che le circonda. La prima parola è "a". Si verifica sulla prima riga ed è seguito da "b" e "c" alla sua destra. La seconda parola è "b", che si presenta sulla riga due con "a" alla sua sinistra e "c" alla sua destra. Infine, "c" si verifica sulla riga tre ed è seguito da "a" e "b".

Usando questo, puoi trovare il numero di riga e le parole circostanti a qualsiasi parola in un testo. Sembra molto grep, eh? La differenza è che ptxcomprende la struttura del testo, in unità logiche di parole e frasi. Questo rende l'output contestuale diptx più rilevante quando si tratta di testo inglese rispetto a grep.

Confrontiamo ptxe grep, usando il primo paragrafo del tabloid americano di 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.

Ecco grep(con le corrispondenze di colore modificate manualmente per essere circondate da //):

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

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

Poiché grepè orientato alla linea e questo paragrafo è tutto su una riga, l' grepoutput non è altrettanto conciso o utile come l'output di ptx.


1
Questa è ovviamente la risposta alla domanda.
Bite Bytes

1

Puoi vedere un (vecchio) esempio di un indice permutato online qui ( fai clic sul link Indice permutato nel riquadro in alto a sinistra).

Come ha già detto qualcun altro, questo non è più comune a causa delle capacità dei motori di ricerca e delle app di ricerca personalizzate.


1

Conosciuto anche come concordanza. E sono ancora pertinenti e abbastanza utili. Un buon esempio è identificare rapidamente i versi della Bibbia quando si conoscono solo poche parole. Un altro esempio potrebbe essere l'indicizzazione di tutti i sonetti di Shakespeare per consentire una ricerca rapida simile per parola chiave.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.