/usr/bin/ptx:您能提供一两个用例吗?

/usr/bin/ptx:您能提供一两个用例吗?

我正在浏览 coreutils 中包含的文件列表,并且能够想出一个示例,说明我个人如何使用除 ptx 之外提供的所有命令。你能举出一两个(或三个)使用 ptx 的例子吗?用例越多样化越好。

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

答案1

@Joseph R. 接受的答案了解历史固然很好,但让我们看看如何使用它。

ptx从文本生成排列的术语索引(“ptx”)。举个例子最容易理解:

$ 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

在右侧,您可以看到输入中的不同单词和左右词上下文围绕着他们。第一个字是“一”。它出现在第一行,其右侧紧跟着“b”和“c”。第二个单词是“b”,出现在第二行,左侧为“a”,右侧为“c”。最后,“c”出现在第三行,后面是“a”和“b”。

使用它,您可以找到文本中任何单词的行号和周围的单词。这听起来很像grep,是吗?不同之处在于ptx理解文本的结构、单词和句子的逻辑单元。这使得ptx处理英文文本时的上下文输出比 grep 更相关。

让我们使用 James Ellroy 的第一段来比较ptxgrep美国小报:

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

这是grep(手动更改颜色匹配以包围//):

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

这是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.

因为grep是面向行的,并且该段落都是一行,所以grep输出不像 的输出那么简洁或有用ptx

答案2

显然,它在过去被用来索引 Unix 参考手册。

在下面的参考文献中,维基百科文章解释了排列索引是什么(也称为 KWIC,或“上下文中的关键字”),并以神秘的结尾:

由许多带有自己的描述性标题的小节组成的书籍,尤其是手册页的集合,通常以排列索引部分结尾,使读者可以通过标题中的任何单词轻松找到该节。这种做法已不再常见。

更多搜索揭示了参考文献中的其余文章,这些文章详细解释了 Unix 手册页如何使用排列索引。他们处理的主要问题似乎是手册页没有连续编号。

据我所知,使用排列索引的做法现在已经变得神秘且过时了。

参考

答案3

答案4

您可以看到在线排列索引的(旧)示例这里 (单击左上角框架中的排列索引链接)。

正如其他人提到的,由于搜索引擎和自定义搜索应用程序的功能,这种情况不再常见。

相关内容