Mittwoch, 4. Mai 2011

Source Code Header Replacer mit sed

Da ich in die Verlegenheit kam, den Lizenztext aller meiner Quellcode Dateien zu ändern, hab ich mir kurzerhand ein mini sed Skript zusammengebastelt. Es löscht zunächst den alten Lizenztext aus den Dateien und fügt dann den neuen Lizenztext ein, der aus einer Datei geholt wird. Man kann sich eine Vorschau anzeigen lassen, indem man die Option "-i" weglässt.
Die ersten 20 Zeilen der alten Quellcodedateien mögen der alte Lizenztext sein.

## replace headers script
# delete first 20 rows (old license text)
sed -i '1,20d' *.h
# maybe you have to insert newline at top
sed -i '1i\\n' *.h
# insert header content from file
sed -i '1r ../LICENSE' *.h

Ein Einzeiler für cpp und h Dateien:
find . -regex '.*\(cpp\|h\)' -exec sed -e '1,19d; 20 c\\n' -e '21r ./LICENSE' '{}' \;

- lösche die ersten 19 Zeilen
- ersetze letzte Zeile (20. Zeile) mit Leerzeile
- füge nach erste (Leer)Zeile Lizenztext aus Datei ein

(-e "1,20d; 21r ./LICENSE" hatte bei mir nicht funktioniert, da er den Lizenztext leider zwischen der ersten und zweiten Zeile eingefügt hatte, und nicht vor der ersten Zeile)

Keine Kommentare:

Kommentar veröffentlichen