LPIC101/103.2 Textströme mit Filtern verarbeiten

Aus Foxwiki

Einleitung

In diesem Artikel geht es darum, wie man Textströme und Textdateien mit Filtern verarbeiten könnt. Zu diesem Thema werden 2 Fragen in der IHK Prüfung (LPIC-1 Version 5) gestellt. Dies entspricht 3,33% der Gesamtwertung.

Begriffsklärung

Was ist ein Textstrom? Ein Textstrom ist eine Textdatei, die fortlaufend verändert wird, beispielsweise von einem Prozess.
Beispiel : /var/log/syslog

Was ist der Unterschied zu einer Textdatei? Ein Textstrom ist eine Textdatei. In der Regel meint man mit einer Textdatei eine Datei, welche nicht von einem laufenden Prozess oder einem anderen Benutzer fortlaufend verändert wird. Ein Textstrom zeichnet sich in der Regel durch eine fortwährende Veränderung aus.

Was ist ein Filter Ein Filter ist ein Programm, welches die Ausgabe eines Befehls als Eingabe verwertet. Es wird in Linux mit einer sogenannten Pipe gekennzeichnet. So schaut eine Pipe in der Kommandozeile aus : |

Relevante Filter

Die folgenden Filter sind relevant. Sie werden sehr kompakt mit jeweils einem Beispiel dargestellt.

cat

Eines der Standardbefehle bei der Arbeit in dem Linux-Terminal. Von der Namensbedeutung her ist der Befehl ursprünglich dazu gedacht, Dateien vertikal zusammenzufügen (concatenate, verketten). In der Praxis wird er aber oft verwendet um den Inhalt einer Datei komplett auszugeben auf dem Terminal.

Beispiel : cat /var/log/syslog Gibt die komplette Syslog Datei auf dem Terminal aus

bzcat,xzcat und zcat

Möchte man eine komprimierte Datei im Terminal ausgeben, kann man einen dieser drei Befehle verwenden. Der Befehl verhält sich ansonsten ähnlich wie cat. Dabei verwendet bzcat das Kompressionsprogrammm bzip2, xzcat das Programm xz (beide Verlinken lediglich auf das Programm). zcat ist eine eigenständiges Programm und wird in der Regel für die gleichen Programme wie gzip verwendet.

Zusatzinfo
bzip2 - Dieser Algorithmus ist leistungsfähiger als gzip und wird gerne für große Datenmengen verwendet.

Beispiel: bzcat gepackteDatei.bz Leitet den Inhalt der Datei in die Standardausgabe.

head

Dieser Befehl zeigt die ersten (Standardmäßig 10) Zeilen einer Textdatei.

Beispiel: head /var/log/syslog Zeigt die ersten zehn Zeilen der Systemlog Datei.

tail

Dieser Befehl zeigt die letzten (Standardmäßig 10) Zeilen einer Textdatei.

Beispiel: tail /var/log/syslog Zeigt die letzten zehn Zeilen der Systemlog Datei.

less

Dieser Befehl zeigt eine Textdatei Seitenweise. Man kann – im Gegensatz zum veralteten Befehl "more" – vor- und zurücknavigieren.


Beispiel: less Textdatei.txt Zeigt die Dateiinhalte Seitenweise.

nl

Dieser Befehl setzt vor die Zeilen einer Textdatei eine Nummer zur besseren Ablesbarkeit.

Beispiel: nl Textdatei.txt > nummerierte_Textdatei.txt Nummeriert die Zeilen der Datei und gibt sie in einer neuen Datei aus. Die Anzeige der Änderungen kann anschließend mit cat erfolgen.

wc

Dieser Befehl zählt die Wörter einer Textdatei.


Beispiel: wc * Zeigt die Wortzahl aller Dateien im aktuellen Pfad.

hexdump

Wandelt die Ausgabe einer Datei in Hexadezimal-, Oktal-, Dezimalzahlen oder ASCII Zeichen um. Es kann nahezu alles als Eingabe verwendet werden, auch Binärdateien. Die Voreinstellung ist Hexadezimal.

Beispiel: hexdump Textdatei.txt Zeigt die Dateiinhalte im Hexadezimalformat.

od

Erledigt das gleiche wie hexdump. Einige Distributionen arbeiten mit hexdump, andere mit od und wieder andere mit beiden. Die Voreinstellung ist Oktal. Od hat verglichen mit hexdump etwas weniger Funktionen.

Beispiel: od Textdatei.txt Zeigt die Dateiinhalte im Oktalformat.

sort

Sortiert die Zeilen von Text- und anderen Dateien.

Beispiel sort -n textfile1 Sortiert die Textdatei in numerischer Reihenfolge (-n).

uniq

Zeigt nur die einzigartigen Zeilen einer Datei.


Beispiel : sort textfile.txt | uniq Sortiert die Datei und gibt nur einzigartige Zeilen aus.

split

Spaltet Dateien in mehrere. Die Angaben sind Standardmäßig Zeilenbasiert, können aber auch Dateigrößenorientiert sein (split -b). Standardangabe ist ein Split nach 1000 Zeilen.

Beispiel : split -b 11m grosses-paket grosses-paket-split Teilt die Quelldatei "grosses-paket" in mehrere 11MB große Teilpakete "grosses-paket-split". Die Ausgabe erzeugt mehrere Dateien, welche in folgender Logik an den Dateinamen angehängt werden "grosses-paket-splitaa","grosses-paket-splitab" usw..

cut,paste

Cut schneidet Spalten einer Textdatei aus. Es ist jedoch nicht mit dem Windows "Ausschneiden" zu verwechseln, da die Spalten in der Originaldatei bestehen bleiben. Zum erfolgreichen ausschneiden der Spalten benötigt man eine Angabe der Spalte (z.B. "-f2") und einen sogenannten Delimiter, welcher die Spalten voneinander trennt (z.B. "d:", also hier ein Doppelpunkt). Der Befehl Paste fügt zwei oder mehr Dateien zusammen. Im Gegensatz zu cat werden diese horizontal zusammengefügt.

Beispiel : cut -d: -f2 textdatei1 Schneidet die die zweite Spalte in der Datei aus.

sed

Der sed Editor gehört nicht in dieses Kapitel und wird nur der Vollständigkeit halber erwähnt.

tr

Der Befehl tr steht für translate und ist am besten durch die Funktion "Suchen und Ersetzen" aus Excel zu vergleichen. Es werden bestimmte Zeichen oder Wörter einer Datei durch andere ersetzt.

Beispiel: cat textfile1 | tr n x Ersetzt alle Buchstaben "n" mit dem Buchstaben "x"

md5sum,sha256sum,sha512sum

Die drei genannten Befehle arbeiten alle nach derselben Syntax und haben den gleichen Zweck. Sie erstellen Prüfsummen für die jeweilige Datei, welche wiederum wichtig für Datenintegrität,-sicherheit und -authentizität sind. Es lassen sich mit den jeweiligen Befehlen auch die entsprechenden Hashwerte auslesen.

Beispiel: sha512sum textfile.txt > SHA512SUMS Erstellt einen Secure Hash Algorithm 2 (SHA) mit 64-Bit Schlüsselwörtern (512).