/ usr / bin / ptx: pouvez-vous fournir un ou deux cas d'utilisation?

20

Je parcourais la liste des fichiers inclus dans coreutils et j'ai pu trouver un exemple de la façon dont je pouvais personnellement utiliser toutes les commandes fournies, à l'exception de ptx. Pouvez-vous donner un ou deux (ou trois) exemples d'utilisation de ptx? Plus le cas d'utilisation est varié, mieux c'est.

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

Réponses:

10

Apparemment, il était utilisé pour indexer le manuel de référence Unix dans les temps anciens.

Dans les références ci-dessous, l'article Wikipedia explique ce qu'est un index permuté (également appelé KWIC, ou "mot-clé en contexte") et se termine par le cryptique:

Les livres composés de nombreuses sections courtes avec leurs propres titres descriptifs, notamment des collections de pages de manuel, se terminaient souvent par une section index permutée, permettant au lecteur de trouver facilement une section par n'importe quel mot de son titre. Cette pratique n'est plus courante.

Une recherche plus approfondie révèle les articles restants dans les références, qui expliquent davantage comment les pages de manuel Unix ont utilisé un index permuté. Il semble que le principal problème auquel ils étaient confrontés était que les pages de manuel n'avaient pas de numérotation continue.

D'après ce que je comprends, la pratique de l'utilisation d'un index permuté est maintenant obscure et obsolète.

Les références

Joseph R.
la source
5

La réponse acceptée de @Joseph R. avec l'historique est bonne, mais regardons comment elle pourrait être utilisée.

ptxgénère un index de terme permuté ("ptx") à partir du texte. Un exemple est plus facile à comprendre:

$ 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

En bas à droite, vous voyez les différents mots de l'entrée et le contexte des mots gauche et droit qui les entoure. Le premier mot est "a". Il se produit sur la première ligne et est suivi de "b" et "c" à sa droite. Le deuxième mot est "b", qui apparaît sur la ligne deux avec "a" à sa gauche et "c" à sa droite. Enfin, "c" apparaît sur la ligne trois et se poursuit par "a" et "b".

En utilisant cela, vous pouvez trouver le numéro de ligne et les mots environnants à n'importe quel mot dans un texte. Cela ressemble beaucoup à grep, hein? La différence est que l'on ptxcomprend la structure du texte, en unités logiques de mots et de phrases. Cela rend la sortie contextuelle de ptxplus pertinente lorsqu'il s'agit de texte anglais que grep.

Comparons ptxet grep, en utilisant le premier paragraphe du tabloïd américain 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.

Voici grep(avec des correspondances de couleurs modifiées manuellement pour être entourées de //):

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

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

Parce qu'il grepest orienté ligne et que ce paragraphe est composé d'une seule ligne, la grepsortie n'est pas aussi concise ou utile que la sortie de ptx.

évêque
la source
1
C'est évidemment la réponse à la question.
Bite Bytes
1

Vous pouvez voir un (ancien) exemple d'un index permuté en ligne ici (cliquez sur le lien Index permuté dans le cadre en haut à gauche).

Comme quelqu'un d'autre l'a mentionné, ce n'est plus courant en raison des capacités des moteurs de recherche et des applications de recherche personnalisées.

evb
la source
1

Également connu sous le nom de concordance. Et ils sont toujours pertinents et très utiles. Un bon exemple est d'identifier rapidement les versets de la Bible lorsque vous ne connaissez que quelques mots. Un autre exemple serait l'indexation de tous les sonnets de Shakespeare pour permettre une recherche rapide similaire par mot-clé.

Fred
la source