Filterkommandos 2

Mittwoch 17. April 2019 von Torsten

Dieser Artikel liefert die Fortsetzung des Themas Textbearbeitung mit Filterkommandos…

Textbearbeitung mit Filterkommandos

Für diese Experimente wurde wieder eine Datei im Dateimanager angelegt (story.txt) und mit einem umfangreicheren Text gefüllt…

  • cat story.txt

Mit dem cat-Befehl wird die gesamte Datei auf dem Terminal ausgelesen. Mit folgendem Befehl wird die Ausgabe jetzt auf eine Zeilenlänge von 20 Zeichen begrenzt.

  • fmt -w 20 story.txt

Der Effekt sollte sofort sichtbar sein. Details über die Einrückungen und Zeilenumbrüche spare ich mir hier.

Der fmt-Befehl kann auch mit Option -c genutzt werden.

  • fmt -c -w 40 story.txt

Wie wäre es mit einer formatierten Ausgabe? Kein Problem:

  • fmt -w 20 story.txt | pr -h „Märchen“ -2

Der Asugabe wird jetzt eine Überschrift, ein Datum, eine Seitenzahl und zwei Spalten zugefügt.

Wer braucht jetzt Zeilennummern?

  • nl story.txt

Der wc-Befehl

Dieser Befehl ist kein Griff ins Klo. Es werden jetzt Wörter gezählt oder Zeichen oder Zeilen…

Also es wird etwas gezählt…

  • wc story.txt

Angezeigt werden nun die Zeilen, die Wörter und die Zeichen.

Das Ergebnis ist wieder etwas schräg, weil das Programm anders zählt als vielleicht vermutet. Der erste Absatz wird als eine Zeile gezählt. Die Leerzeilen werden auch gezählt und der zweite Absatz ist wieder nur eine Zeile für das “word count Programm“…

Die Optionen sind folgende:

  • wc -l für Zeilen (Lines)
  • wc -w für Wörter (Words)
  • wc -c für Zeichen (Characters)

In Verbindung mit dem ls-Befehl und der Pipe kann man damit die Anzahl in einem Ordner ermitteln lassen…

  • ls | wc -l

Das Ergebnis sollte mit der Angabe im Dateimanager übereinstimmen.

Der sort-Befehl

Jetzt soll der Dateiinhalt zeilenweise sortiert werden – dazu gibt es den sort-Befehl.

In der Beispieltdatei sind drei Namen absichtlich in falscher Reihenfolge eingetragen.

  • sort abx.txt

In der Datei stehen die Namen in der Reihenfolge Bernd, Anton und Charly. Der sort-Befehl sortiert die Zeilen in alphabetischer Reihenfolge.

Probleme kann es eventuell mit deutschen Sonderzeichen geben. Doch auch dafür gibt es eine Lösung…

  • LC_COLLATE=de_DE sort abc.txt

In meinem System war deutsch aber schon voreingestellt. Der LC_COLLATE-Befehl sorgt dann für eine falsche Sortierung.

Der uniq-Befehl

  • uniq abc.txt

Der uniq-Befehl filtert gleiche Zeilen aus – aber auch nur wenn sie direkt aufeinander folgen…

Weil es jetzt mit vernünftigen Praxisbeispielen immer schwieriger wird, lasse ich einige Filterkommandos aus und mache hier erstmal Schluß…

Die Befehle cut, paste, expand, join, pr und tee werden also nur bei Bedarf in einem späteren Artikel vorgestellt…

Dieser Beitrag wurde erstellt am Mittwoch 17. April 2019 um 08:00 und abgelegt unter Allgemein. Kommentare zu diesen Eintrag im RSS 2.0 Feed. Sie können zum Ende springen und ein Kommentar hinterlassen. Pings sind im Augenblick nicht erlaubt.

Kommentar schreiben