/ usr / bin / ptx: você pode fornecer um caso de uso ou dois?

20

Eu estava examinando a lista de arquivos incluídos no coreutils e pude apresentar um exemplo de como eu poderia usar pessoalmente todos os comandos fornecidos, exceto o ptx. Você pode dar um ou dois (ou três) exemplos de uso do ptx? Quanto mais variado o caso de uso, melhor.

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

Respostas:

10

Aparentemente, era usado para indexar o manual de referência do Unix nos velhos tempos.

Nas referências abaixo, o artigo da Wikipedia explica o que é um índice permutado (também chamado de KWIC, ou "Palavra-chave no contexto") e termina com o enigmático:

Os livros compostos por várias seções curtas com seus próprios cabeçalhos descritivos, principalmente coleções de páginas de manual, geralmente terminavam com uma seção de índice permutada, permitindo ao leitor encontrar facilmente uma seção por qualquer palavra do cabeçalho. Essa prática não é mais comum.

Mais pesquisas revelam os artigos restantes nas Referências, que explicam mais sobre como as páginas de manual do Unix usavam um índice permutado. Parece que o principal problema com o qual eles estavam lidando é que as páginas de manual não tinham numeração contínua.

Pelo que entendi, a prática de usar um índice permutado é agora misteriosa e obsoleta.

Referências

Joseph R.
fonte
5

A resposta aceita de Joseph R. com a história é boa, mas vamos ver como ela pode ser usada.

ptxgera um índice de termo permutado ("ptx") a partir do texto. Um exemplo é mais 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

Abaixo, à direita, você vê as diferentes palavras da entrada e o contexto das palavras esquerda e direita ao seu redor. A primeira palavra é "a". Ocorre na linha um e é seguido por "b" e "c" à sua direita. A segunda palavra é "b", que ocorre na linha dois com "a" à esquerda e "c" à direita. Finalmente, "c" ocorre na linha três e é seguido por "a" e "b".

Com isso, você pode encontrar o número da linha e as palavras ao redor de qualquer palavra em um texto. Isso soa muito como grep, hein? A diferença é que ptxentende a estrutura do texto, em unidades lógicas de palavras e frases. Isso torna a saída contextual ptxmais relevante ao lidar com texto em inglês que grep.

Vamos comparar ptxe grep, usando o primeiro parágrafo do tablóide americano 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.

Aqui está grep(com as correspondências de cores alteradas manualmente para serem cercadas 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.

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

Como grepé orientado a linhas, e este parágrafo é uma linha, a grepsaída não é tão concisa ou útil quanto a saída ptx.

bispo
fonte
11
Esta é obviamente a resposta para a pergunta.
Bite Bytes
1

Você pode ver um exemplo (antigo) de um índice permutado on-line aqui (clique no link Índice permutado no quadro superior esquerdo).

Como outra pessoa mencionou, isso não é mais comum devido aos recursos dos mecanismos de pesquisa e dos aplicativos de pesquisa personalizados.

evb
fonte
1

Também conhecida como concordância. E eles ainda são relevantes e bastante úteis. Um bom exemplo é identificar rapidamente os versículos da Bíblia quando você conhece apenas algumas palavras. Outro exemplo seria a indexação de todos os sonetos de Shakespeare para permitir uma pesquisa rápida semelhante por palavra-chave.

fred
fonte