Seite wählen

NETWAYS Blog

Aus 4 mach 2 – Spaces

Heute schließe ich mich meinem Kollegen Eric Lippmann mit seinen Sed Tricks an. Heute heißt es: „Aus 4 mach 2“. Der Wechsel von Spaces in Einrückungen funktioniert nicht überall reibungslos. Entweder ist die Änderung mit Codestyle verbunden (tools) oder ich brauche spezielle, oberflächen-behaftete Software (vi o.ä.).
Mit Sed ist dies mit einem Einzeiler möglich – Und damit integrierbar in alle meine find und git hacks ;-):

sed -i .BAK 'h;s/[^ ].*//;s/    /  /g;G;s/\n *//' /path/to/file

Mit der Operation -i wird die Datei gleich geändert und das Original also file.BAK abgespeichert.
 

Marius Hein
Marius Hein
Head of IT Service Management

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert und viele Jahre in der Softwareentwicklung gearbeitet. Mittlerweile ist er Herr über die interne IT und als Leiter von ITSM zuständig für die technische Schnittmenge der Abteilungen der NETWAYS Gruppe. Wenn er nicht gerade IPv6 IPSec Tunnel bohrt, sitzt er daheim am Schlagzeug und treibt seine Nachbarn in den Wahnsinn.

Leerzeichen und Zeilenumbrüchen and den Kragen gehen

Da die letzten Blogposts ausreichend Text zum Lesen enthalten, kommen von mir in aller Kürze und Würze sed-Befehle, um Leerzeichen und Zeilenumbrüche bevorzugt im Quelltext aufzuräumen.
Leerzeichen am Ende einer Zeile entfernen:

sed 's/\s\+$//' 

Aus mehreren Zeilenumbrüchen nur Einen machen:

sed '/^$/N;/^\n$/D' 

Zeilenumbruch, falls noch nicht vorhanden, am Ende einer Datei einfügen:

sed '$a\' 

Weitere sed-Einzeiler findet man z.B. hier.

Eric Lippmann
Eric Lippmann
CTO

Eric kam während seines ersten Lehrjahres zu NETWAYS und hat seine Ausbildung bereits 2011 sehr erfolgreich abgeschlossen. Seit Beginn arbeitet er in der Softwareentwicklung und dort an den unterschiedlichen NETWAYS Open Source Lösungen, insbesondere inGraph und im Icinga Team an Icinga Web. Darüber hinaus zeichnet er für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.