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