TXR.

Ein Muster-Matching-Dienstprogramm zur bequemen Textabsaugung
Jetzt downloaden

TXR. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • BSD License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Kaz Kylheku
  • Website des Verlags:
  • http://common-lisp.net/project/meta-cvs/

TXR. Stichworte


TXR. Beschreibung

Ein Pattern Matching-Dienstprogramm für Convenient Textextrahierung Txr ist ein Interpreter für die TXR Abfragesprache. Eine TXR Abfrage entspricht Text und extrahiert Stücke von ihnen Variablen Bindung, die in der Abfrage eingebettet sind. Txr ausgeben kann die rohen Bindungen aus den gesammelten Daten, oder sie in einen Template-driven report.Great ersetzen, aber wir haben bereits sed, awk, perl ... Obwohl diese Tools Pattern-Matching in Form von regulären Ausdrücken unterstützen, sie tun nicht eine ganze Eingabe pattern-Matching-Paradigma wie txr.All implementieren, aber die einfachsten Aufgaben Textextraktion sind nur schwer mit sed, das ist im Grunde ein regexp Programm Filterung ist. Wenn das Datenformat umfasst mehrere Zeilen, die miteinander korrelieren, beginnt sed seine Schwäche zu zeigen. Awk und Perl sind Programmiersprachen. Sie können verwendet werden, um komplexe Textextraktion durchzuführen, aber es wird als ein Muster-Algorithmus ausgedrückt ist eine Form, die ähnelt dem es übereinstimmt. Ein perl oder awk Programm ist kein Muster; es hat keine Ähnlichkeit mit den Daten, die verarbeitet werden; es beschreibt die einzelnen Schritte des Prozesses mehr als die Daten. Für viele solche Prozesse werden eine klare, kann prägnante Txr Abfrage geschrieben werden, um die gleiche Sache zu tun. Eine Analogie kann auf andere Muster Sprachen wie Grammatiken gezogen werden. Eine BNF-Grammatik einer Sprache in einer Art und Weise beschreibt, dass, sagen wir, die C ++ Quellcode eines rekursiven Abstiegs-Parser tut not.To eine TXR Abfrage zu entwickeln, beginnt der Benutzer in der Regel mit Beispieldaten. Die Rohdaten selbst ist wahrscheinlich bereits eine TXR Abfrage, die selbst übereinstimmt, nachdem Pflege einige Zeichen zu entkommen genommen wird, die eine besondere Bedeutung zu TXR haben. Alles, was übrig bleibt, ist, die Teile zu identifizieren, dass Bedarf Variablen zu sein, und die Variationen zusammenfassen, so dass die Abfrage verallgemeinert für alle Instanzen des data.In kurz, hat eine wirklich praktische Extraktion und Bericht Sprache kommt, und sein Name ist Txr .Talk ist billig; Wie wäre es mit einem Beispiel? Fein. Statt Hallo, Welt, wie wäre es etwas weiter fortgeschritten? Ein Werkzeug, das ich in Unix und Linux nicht mag, ist das ps-Dienstprogramm für Prozesse auflistet. Ich habe seit 1993 seit 1989 und Linux Unix benutzen, und ich bin nicht dumm; etwas zu tun, etwas aus dem Üblichen noch, wenn ich ps brauche, muss ich den Mann Seite greifen, und dann kann ich es immer noch nicht bekommen, was ich will die Hälfte der time.With Txr, können wir leicht eine machen quick and dirty ps Dienstprogramm (die auf das / proc-Dateisystem auf Linux basiert). Hier ist, was die Abfrage aussieht. Dies könnte in einer ps.txr genannt Datei gespeichert werden: @ (nächste) $ / proc @ (Collect) @ {Prozess / + /} @ (nächster) / proc / @ Prozess / statusName: @ @nameState : @ @state (@state_desc) @ (SKIP) TGID: @ @tgidPid: @ @proc_idPPid: @ @ @ parent_id (bind pid proc_id) @ (bind PPID parent_id) @ (SKIP) Uid: @ @ @ @ uid /. * / gID:. @ @ gid @ @ / * / @ (nächster) $ / proc / @ Prozess / Task @ (collect) @ thr @ (Ende) @ (bind Gewinde thr) @ (etwas) @ (nächst) / etc / passwd @ (überspringen) @user: @pw: @uid:. @ / * / @ (oder) @ (bind Benutzer-UID) @ (end) @ (end) @ (Ausgang) USER PID PPID S BEZEICHNUNG THREADS @ (Wiederholung) @ {user 8} @ {proc_id -5} @ {parent_id -5} @state @ {name 16} @ (rep) @thr, @ (erste) @ (letzte) @ thr @ (single) ~ @ (Ende) @ (Ende) @ (Ende) Jetzt können wir die Abfrage wie folgt ausführen: shell $ TXR ps.txrWe get Ausgabe, die wie folgt aussieht: USER PID PPID S Name THREADSroot 10 S init ~ root 21 S ksoftirqd / 0 ~ root 31 S events / 0 ~ root 43 S khelper ~ root 53 S kacpid ~ root 163 S kblockd / 0 ~ root 293 S AIO / 0 ~ Wurzel 171 S khubd ~ root 29542953 S bash ~ root 161341887 S sshd ~ kaz 1613616134 S sshd ~ kaz 1613716136 S bash ~ kaz 3628 2175 S slrn ~ root 37211963 S crond ~ root 37223721 S Laufteile ~ root 37233722 S 00-logwatch ~ root 37243722 S awk ~ root 39403723 S Mail ~ root 40493723 S zz-disk_space ~ root 40514049 S df ~ root 40524049 S grep ~ kaz 42661 S ssh-agent ~ kaz 433116137 S vim ~ kaz 442631908 R TXR ~ die Txr Abfrage funktioniert durch Verarbeiten der numerischen Einträge unter dem Verzeichnis / proc, das Lesen der / proc / / Statusdatei jeden Prozess, und die Liste der Themen unter / proc / / Aufgaben. Die Benutzer-IDs sind durch Abgleich über die / etc / passwd-Datei aufgelöst. Was ist neu in dieser Version: · Es gibt eine neue Freiform-Richtlinie für unstrukturierte Matching über mehrere Zeilen. · Variablen können zur Anpassung an Regexes gebunden und verwendet werden.


TXR. Zugehörige Software