ADMIN-Tipp: Shell-Tools zur Verarbeitung von Textdateien

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Seien es Logs oder Konfigurationsfiles - Textdateien sind auf Linux-Systemen allgegenwärtig. Ein paar weniger bekannte Unix-Bordmittel können den Umgang mit Ihnen erleichtern.

Zuweilen erzeugen Applikationen sehr lange Zeilen - die Logs des Apache Webservers wären ein Beispiel unter vielen. Spätestens wenn man in mehreren, nebeneinander geöffneten Terminalfenstern solche Files betrachtet, verschwindet ein Teil des Dateiinhalts hinter der rechten Fensterbegrenzung. Hier schafft das unscheinbare Kommando fold Abhilfe. fold --width=72 -s Logdatei umbricht alle Zeilen der Logdatei nach spätestens 72 Zeichen an einem Leerzeichen. Ohne -s wird immer bei genau 72 Zeichen umbrochen, meist mitten im Wort.

Häufig will man Textdateien vergleichen, wofür einem natürlich sofort das Kommando diff in den Sinn kommt. Das bewährt sich besonders, wenn man die Unterschiede auch ausbügeln will. Das funktioniert mit diff und patch dann so:

diff file1.txt file2.txt > unterschiede
patch file1.txt unterschiede

Damit ist file1 auf dem Stand von file2. Der Preis für die Bequemlichkeit an dieser Stelle ist allerdings die etwas unübersichtliche Ausgabe auf dem Bildschirm. Wer sich die Differenzen lediglich ansehen will, der fährt deshalb mit sdiff besser, das sie nebeneinander anzeigt.

Manchmal muss man in einer größeren Zahl von Texten kurze Passagen tauschen, beispielsweise eine URL. Einen Text nach dem anderen in einem Editor zu öffnen, die Stelle zu suchen und manuell zu ändern, ist umständlich. Sehr schnell funktioniert das aber mit

cat file1 | tr altes_Wort neues_Wort > NeueDatei

Automatisch werden alle Vorkommen des alten Worts gegen das neue getauscht.

tr ist auch nützlich, um die lästigen ^M am Ende jeder Zeile zu tilgen, die in Dateien auftauchen, die unter Windows erstellt worden.

tr -d '\015' win.txt > unix.txt

In die entgegengesetze Richtung funktioniert der Konverter übrigens so:
 
sed -e 's/$/\r/' unix.txt > win.txt

21.03.2012

Ähnliche Artikel

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019