Perl: Mehrzeilige Ersetzung auf Dateien
In Dateien eines Verzeichnisbaums wollen wir eine mehrzeilige Ersetzung vornehmen. Unter Nutzung von Perl geht dies mit einem Einzeiler:$ find DIR ... | xargs perl -0777 -p -i -E...
View ArticleShell: Umgebung universell nutzbar aufsetzen
Für die Ausführung von Programmen ist es oft notwendig, dass bestimmte Umgebungsvariablen gesetzt sind. Dies kann allgemeine Variablen betreffen, wie z.B. den Suchpfad PATH oder programmspezifische...
View ArticleGrep: Finde in Dateibaum Worte eines bestimmten Musters
Finde innerhalb des Dateibaums DIR alle Vorkommen des Wortmusters REGEX und gib die Wortliste sortiert aus (GNU grep): $ grep -oPhr REGEX DIR | sort | uniq-o : gib nur den durch REGEX gematchten...
View ArticleGlobale in-place Textersetzung mit sed oder Perl
Mitunter möchte man einen Text oder ein Muster global über mehreren Dateien FILE ... ersetzen. Unter Unix/Linux geht das am einfachsten mit sed (GNU): $ sed -i s/PATTERN/REPLACEMENT/g FILE ... Das...
View ArticleUnix Epoch in lesbare Zeitangabe wandeln und umgekehrt
Um einen Unix Epoch-Wert (Sekunden seit 1.1.1970 0 Uhr UTC) mit Shell-Mitteln in eine lesbare Zeitangabe (lokale Zeitzone) zu wandeln, kann man sich des Kommandos date bedienen: $ date -d @1406546442...
View ArticleDateibaum chronologisch sortiert anzeigen
Mitunter weiß (oder vermutet) man, dass ein Programm Dateien in einen Bereich des Dateisystems schreibt, aber man weiß nicht genau in welche Verzeichnisse und wie die Dateien heißen. Dem lässt sich...
View ArticleShell: stderr auf Pipe umleiten und andere dup-Operationen
Einer der weniger einleuchtenden Shell-Operatoren ist der Operator >&. Den Klassiker, die Umlenkung von stdout und stderr in eine Datei, $ cmd >/tmp/file 2>&1 kennt jeder, der...
View ArticleFinde Dateinamen mit Sonderzeichen
Finde in Dateibaum DIR alle Dateinamen mit Sonderzeichen, also mit Zeichen, die nicht im ASCII-Zeichensatz liegen: find DIR | perl -ne "print if /[^[:ascii:]]/" Umlaute und andere Non-ASCII-Zeichen in...
View ArticleRsync: Abweichende Rechte einstellen
Mit der Option -a führt rsync den Abgleich im Archive Mode durch, d.h. Symlinks, Devices, Permissions, Ownerschaft usw. werden auf die Zielmaschine transferiert. Was aber, wenn gewisse Unterschiede...
View ArticleVerzeichnisse via rsync abgleichen
Verzeichnisbaum spiegeln (local => remote)$ rsync -avz --delete DIR1/ USER@HOST:DIR2 Der trailing Slash bei DIR1/ ist wichtig, da sonst DIR1 in dir DIR2 hineinkopiert wird. Die Verzeichnisse können...
View Article