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.