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

  • ADMIN-Tipp: Suchen in Texten

    Wenn man zu viel findet kommt man auch nicht weiter. Das kennt man aus dem Internet aber auch vom Unix-Kommando find . Dieser ADMIN-Tipp stellt einen doppelten Filter vor, der den anfallenden Datenmüll reduzieren kann.

  • ADMIN-Tipp: Der Klammer-Kniff

    Die Bash beherrscht einige weniger bekannte Tricks, die sehr nützlich sein können

  • ADMIN-Tipp: Perl Oneliner

    Perl taugt zwar selbst für größere Projekte, ist aber auch am anderen Ende stark: Mit Einzeilern lassen sich viele Alltagsprobleme elegant lösen. Drei Beispiele.

  • Borg-Backup 1.1 veröffentlicht

    Die neue Version des Backup-Tools bringt neue Features und vereinfacht die Benutzung.

  • ADMIN-Tipp: Unlöschbare Files

    Per se ist kein Unix- oder Linux-File unangreifbar, zumindest einer Manipulation mit Rootrechten widerstehen die einfachen Schutzmechanismen nicht. Doch man kann eine Datei mit Bordmitteln durchaus so panzern, dass sich auch der allgewaltige Root daran die Zähne ausbeißt.

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

Ausgabe /2023