Câu trả lời được chấp nhận của @Joseph R. với lịch sử là tốt, nhưng hãy xem cách nó có thể được sử dụng.
ptx
tạo ra một chỉ mục thuật ngữ hoán vị ("ptx") từ văn bản. Một ví dụ dễ hiểu nhất:
$ 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ên phải bạn nhìn thấy các từ khác nhau từ đầu vào và bối cảnh từ trái và phải xung quanh chúng. Từ đầu tiên là "a". Nó xuất hiện trên dòng một và được theo sau bởi "b" và "c" ở bên phải của nó. Từ thứ hai là "b", xuất hiện trên dòng hai với "a" ở bên trái và "c" ở bên phải. Cuối cùng, "c" xảy ra trên dòng ba và được tiến hành bởi "a" và "b".
Sử dụng điều này, bạn có thể tìm thấy số dòng và các từ xung quanh cho bất kỳ từ nào trong văn bản. Điều này nghe rất giống grep
, nhỉ? Sự khác biệt là ptx
hiểu cấu trúc của văn bản, theo đơn vị logic của từ và câu. Điều này làm cho đầu ra theo ngữ cảnh ptx
phù hợp hơn khi xử lý văn bản tiếng Anh hơn grep.
Hãy so sánh ptx
và grep
sử dụng đoạn đầu tiên của Tabloid American của 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.
Đây grep
(với các kết hợp màu được thay đổi thủ công để được bao quanh bởi //
):
$ 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.
Đây là 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.
Vì grep
được định hướng theo dòng và đoạn này là tất cả một dòng, grep
đầu ra không hoàn toàn ngắn gọn hoặc hữu ích như đầu ra từ ptx
.