sed, ein mächtiger Text Editor

sed ist ein Kommandozeilenwerkzeug, hauptsächlich auf Linuxsystemen eingesetzt. Im Gegensatz zu den meisten Editoren, wie vi oder nano, bewegt man sich nicht mit einem Cursor in einem Text und verändert diesen, sondern man führt Befehle aus, die einzelne Zeilen manipulieren.

Jedem sed Befehl kann ein Bereich vorangestellt werden. Zum Beispiel bezieht sich der Bereich „64, 123“ Zeilen 64 bis 123. Der Befehl zum Ersetzen  von Abschnitten in Zeilen ist „s“. Dem Befehl werden die Parameter mit dem Zeichen „/“ umschlossen angehängt. Der erste Parameter ist ein regulärer Ausdruck, der ersetzt werden soll. Der zweite Parameter ist der Text, der eingefügt werden soll

Mit dem Kommandozeilenbefehl

sed '64, 123s/^/\/\//' main.cpp

werden den Zeilen 64 bis 123 der Datei der Text „//“ vorangestellt. Der erste Parameter ist „^“, der den Zeilenanfang bezeichnet. Der zweite Parameter ist „\/\/“, der maskiert den Text „//“ repräsentiert. Jedoch wird hierbei die Änderung nicht direkt in die Datei geschrieben sondern der Inhalt der verändert Datei wird auf der Standardausgabe ausgegeben.

Mit „{}“ lassen sich Befehle gruppieren. Mit „>“ wird die Ausgabe in eine Datei umgeleitet. Mit

sed '64,123 {s/^/\/\//; s/$/ \/\/ TS/}' main.cpp > new_main.cpp

werden den Zeilen 64 bis 123 der Text „//“ vorangestellt und der Text „// TS“ angehängt. Das Ergebnis wird in die Datei „new_main.cpp“ geschrieben.

Eine weitere Möglichkeit, einzelne Zeilen zu bearbeiten, ist das Adressieren. Dazu wird dem Befehl ein mit dem Zeichen „/“ umschlossener regulärer Ausdruck vorangestellt. Mit dem Zeichen „!“ lässt sich die Auswahl invertieren. Mit

sed '34, 57 {/^$/!{s/^/\/\/ /; s/$/ \/\/ TS/}}' main.cpp > new_main.cpp

wird allen Zeilen im Bereich von Zeile 34 bis Zeile 57, die nicht leer sind, der Text „// “ vorangestellt und der Text “ // TS“ angehängt.

Fix für Eclipse GTK Problem unter Linux

Es gibt ein Problem mit einigen Eclipse Version/Theme Kombinationen und GTK3. Das Problem zeigt sich durch ein unsauberes Aussehen, eine falsche Darstellung von Buttons und der fehlenden Aktualisierung der Menüansicht bei einem Wechsel des Menüpunktes. Auch bleiben einige Ansichten vollständig schwarz. Um das Problem zu beheben, kann man Eclipse mit

env SWT_GTK3=0 eclipse

gestartet werden. Dadurch wird Eclipse mit GTK2 gestartet. Dagegen kann man Eclipse zur Nutzung von GTK3 mit

env SWT_GTK3=1 eclipse

auffordern. Die aktuell verwendete Version kann in Eclipse unter „Help -> About -> Eclipse -> Installation Details -> Configuration -> org.eclipse.swt.internal.gtk.version“ ermittelt werden.

wxOgreView

Eine minimalistische C++ Klasse, die ein Ogre 3D Renderingfenster innerhalb einer wxWidgets Application ermöglicht. Sie kann für unterschiedliche wxWidgets/Ogre Applikationen wie 3D Editoren oder Modelviewer verwendet werden.

Wiki
Github