Ich habe die Liste der in coreutils enthaltenen Dateien durchgesehen und konnte ein Beispiel dafür finden, wie ich persönlich alle bereitgestellten Befehle außer ptx verwenden könnte. Können Sie ein oder zwei (oder drei) Beispiele für die Verwendung von ptx geben? Je vielfältiger der Anwendungsfall, desto besser.
$ apropos ptx
ptx(1) - produce a permuted index of file contents
Antwort1
@Joseph R.'s akzeptierte AntwortDie Geschichte ist gut, aber schauen wir uns an, wie sie genutzt werden könnte.
ptx
generiert einen permutierten Termindex ("ptx") aus Text. Ein Beispiel ist am einfachsten zu verstehen:
$ 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
Unten rechts sehen Sie die verschiedenen Wörter aus der Eingabe und dielinker und rechter Wortkontextumgeben. Das erste Wort ist „a“. Es steht in Zeile eins, gefolgt von „b“ und „c“ rechts davon. Das zweite Wort ist „b“, das in Zeile zwei steht, mit „a“ links davon und „c“ rechts davon. Schließlich steht „c“ in Zeile drei, gefolgt von „a“ und „b“.
Damit können Sie die Zeilennummer und die umgebenden Wörter zu jedem Wort in einem Text finden. Das klingt sehr nach grep
, oder? Der Unterschied besteht darin, dass ptx
die Struktur des Textes in logischen Einheiten von Wörtern und Sätzen versteht. Dadurch ist die kontextbezogene Ausgabe von ptx
bei der Verarbeitung von englischem Text relevanter als bei grep.
Vergleichen wir ptx
und grep
anhand des ersten Absatzes von James EllroysAmerikanische Boulevardzeitung:
$ 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.
Hier ist es grep
(mit manuell geänderten Farbübereinstimmungen, die von umgeben sind //
):
$ 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.
Hier ist 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.
Da grep
zeilenorientiert ist und dieser Absatz vollständig aus einer Zeile besteht, grep
ist die Ausgabe nicht ganz so präzise oder hilfreich wie die Ausgabe von ptx
.
Antwort2
Offenbar wurde es früher zum Indizieren des Unix-Referenzhandbuchs verwendet.
In den Referenzen unten erklärt der Wikipedia-Artikel, was ein permutierter Index ist (auch KWIC oder „Keyword in Context“ genannt) und endet mit dem Kryptischen:
Bücher, die aus vielen kurzen Abschnitten mit eigenen beschreibenden Überschriften bestehen, insbesondere Handbuchseitensammlungen, endeten oft mit einem permutierten Indexabschnitt, sodass der Leser einen Abschnitt leicht anhand eines beliebigen Wortes in der Überschrift finden konnte. Diese Vorgehensweise ist nicht mehr üblich.
Bei weiterer Suche werden die restlichen Artikel in den Referenzen angezeigt, die mehr darüber erklären, wie die Unix-Manpages einen permutierten Index verwendeten. Es scheint, dass das Hauptproblem, mit dem sie sich befassten, darin bestand, dass die Manpages keine fortlaufende Nummerierung hatten.
So wie ich es verstehe, ist die Verwendung eines permutierten Index mittlerweile rätselhaft und überholt.
Verweise
Antwort3
Diese Sammlung von Beispielen könnte für Sie interessant sein:
Mustervergleich und Indizierung permutierter Begriffe mit Befehlszeilentools in Linux
Antwort4
Sie können ein (altes) Beispiel eines online permutierten Indexes sehenHier (Klicken Sie im oberen linken Rahmen auf den Link „Permutierter Index“).
Wie bereits von jemand anderem erwähnt, ist dies aufgrund der Möglichkeiten von Suchmaschinen und benutzerdefinierten Such-Apps nicht mehr üblich.