* Martin Schmiderer schrieb am 25.Jun.2003:
Am Dienstag, 24. Juni 2003 19:40 schrieb David Haller:
Hallo,
On Tue, 24 Jun 2003, Al Bogner schrieb:
Welche Möglichkeiten gibt es Kommentare (#) von Dateien nicht anzuzeigen? Kann man das mit grep filtern? Gibt es eventuell auch mit vi eine Möglichkeit beim Editieren?
==== ~/bin/delcomments ==== #!/usr/bin/sed -f
Hierdurch wird sed als Interpreter aufgerufen.
s/^[ \t]*#.*//
s steht für erstzen. Und zwar wird alles was auf ^[ \t]*#.* paßt durch nichts ersetzt. Das ^ steht für den Anfang der Zeile, daß heißt, es wird nur ersetzt, wenn [ \t]*#.* am Anfang der Zeile steht. [ \t] steht für eins der Zeichen " " also blank und \t also TAB. Ich bin mir aber nicht sicher, ob das funktioniert. Ich meine innerhalb der [ ] steht jedes Zeichen für sich selber und schriebe stattdessen: [ ] also ein Blank und ein Tab innerhalb der Klammer. Das * besagt, daß das Zeichen davor, hier also [ \t] beliebig oft vorkommen kann, unter beliebig ist auch gar nicht zu verstehen. Danach steht das # für sich selber, der . für jedes beliebige Zeichen und das * wieder für beliebig oft. Insgesamt wird hier eine Zeichenkette, die aus beliebig viele Leerzeichen, bzw. Tabulatoren am Zeilenanfang gefolgt von einem # und dann noch beliebig viele beliebige Zeichen durch nichts ersetzt, also gelöscht.
/^[ \t]*$/d
Hier steht ^ wieder für den Zeilenanfang, [ \t] für ein Leerzeichen oder einen TAB und * für beliebig viele wiederholungen des Zeichens zuvor. Das $ steht für das Zeilenende. Das d hinter dem Muster ist wieder ein sedBefehl, der besagt daß die Zeile gelöscht wird. Insgesammt heißt das, daß Leerzeilen gelöscht werden. Die Leerzeilen können auch Leerzeichen oder Tabulatoren, aber nichts anderes beinhalten.
koenntest Du bitte ein par Saetze zu diesem sed konstrukt schreiben, ich blick nicht ganz wie es funktioniert (aber es tut ;-)
Annsonsten haette ich noch einen vorschlag:
egrep '^#|^$' /foo/bar >> /bar/foo
Hiermit werden Zeilen, die ein # am Anfang haben, oder auch Leerzeilen ausgegeben. Ist wohl genau das Gegenteil, von dem was Du willst, oder? Da müßte noch ein -v als Option dazu. Hierbei darf aber auch kein Leerzeichen vor dem # stehen und die Leerzeilen müssen wirklich ganz leer sein. Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12