@ Прийнята відповідь Джозефа Р. з історією хороша, але давайте подивимось, як вона може бути використана.
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.
Порівняємо ptx
і grep
, використовуючи перший абзац американського таблоїда Джеймса Еллроя :
$ 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
.