linux-l: Filebased SQL?
Oliver Bandel
oliver at first.in-berlin.de
Do Jul 5 19:32:28 CEST 2001
Hi!
On Thu, 5 Jul 2001, Thomas Knop wrote:
> Am 05.07.2001 um 00:07 Uhr schrieb Oliver Bandel:
> > vielleicht gibt's ja, was ich suche bereits:
> > Eine Textverarbeitsungssprache, die auf SQL-ähnlicher
> > Basis arbeitet. Evtl. mit Perl-Regexps und speziellen
> > Editierfunktionen ergänzt.
> Was magst du denn machen?
> Sonst gibts nur die Standartantwort: emacs-lisp :-)
Naja, wenn ich Lisp lerne (ist bereits geplant; die
Litreratur wird noch gedruckt... :-(, dann schaue ich
mir sicherlich auch mal emacs an.
Oder vielleicht wird anders herum ja auch ein Schuh.
BTW: Gibts *gute* *Literatur* zum Emacs (Einführung
wie auch programmierung)?
Was ich machen will?
Nicht jedes mal, wenn ich einen Text editieren will,
der nach bestimmten Mustern aufgebaut ist ( und z.B.
Sections enthält, wie beispielsweise diverse
Konfigurationsdateien, so auch XF86Config),
will ich mir ein perl-Script zusammen bauen muessen,
das mir die Sections einliest und ggf. via OO-Ansatz
in Objekte zerlegt oder via flex/yacc analysiert,
um dann doch bloß in bestimmten Sections ein paar
Textänderungen vorzunehmen.
Statt dessen will ich dan sagen, daß in Section <identifier>
eine Zeile die auf <match> matcht erstzt werden soll
durch <subststring>.
Oder daß das für alle Sections gemacht werden soll, in denen
ein bestimmter String matcht, oder eine bestimmte Anzahl
von Untersections auftritt.
Irgendwas wie
UPDATE SCREEN.CONFIG where HARDWARE.blih='blub*\s+.[7-9]' with 'ersatz-device';
oder so.
Genaue Syntax ist erst mal egal. Irgendwo zwischen SQL und
Perl darf es sein.
Ich kriege jedenfalls mit den vorhandenen (oder mir bekannten)
Tools/Editoren/Scripten da ziemlich schnell den Kotzanfall,
weil ich keine Böcke habe, immer wieder das gleiche zu programmieren,
was letztlich dauernd und überall gebracuht wird, wenn man
ASCII-Konfig-Files bearbeitet, oder auch Texte anderer Art
verarbeitet.
SUBSTITUTE literal.'vertippstfehler' with marginpar.'Hello, Tippfehler!';
Oder
SUBSTITUTE linenum.'suchmatine' with 'Suchmaschine'
where region < '\end{document}';
DELETE all (section='tabular') where paragraph.linenum < 12;
oder
DELETE all (section='tabular') where linenum (paragraph) < 12;
Any Hints?
Ciao,
Oliver
Mehr Informationen über die Mailingliste linux-l