{"id":1533,"date":"2024-07-17T08:00:00","date_gmt":"2024-07-17T06:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=1533"},"modified":"2025-05-27T13:52:28","modified_gmt":"2025-05-27T11:52:28","slug":"filterkommandos-2","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2024\/07\/17\/filterkommandos-2\/","title":{"rendered":"Filterkommandos 2"},"content":{"rendered":"\n<p>Dieser Artikel liefert die Fortsetzung des Themas Textbearbeitung mit Filterkommandos\u2026<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Textbearbeitung mit Filterkommandos:<\/strong><\/p>\n\n\n\n<p>F\u00fcr diese Experimente wurde wieder eine Datei im Dateimanager angelegt (story.txt) und mit einem umfangreicheren Text gef\u00fcllt\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cat story.txt<\/li>\n<\/ul>\n\n\n\n<p>Mit dem cat-Befehl wird die gesamte Datei auf dem Terminal ausgelesen. Mit folgendem Befehl wird die Ausgabe jetzt auf eine Zeilenl\u00e4nge von 20 Zeichen begrenzt.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fmt -w 20 story.txt<\/li>\n<\/ul>\n\n\n\n<p>Der Effekt sollte sofort sichtbar sein. Details \u00fcber die Einr\u00fcckungen und Zeilenumbr\u00fcche spare ich mir hier. Der fmt-Befehl kann auch mit Option -c genutzt werden.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fmt -c -w 40 story.txt<\/li>\n<\/ul>\n\n\n\n<p>Wie w\u00e4re es mit einer formatierten Ausgabe? Kein Problem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fmt -w 20 story.txt | pr -h \u201eM\u00e4rchen\u201c -2<\/li>\n<\/ul>\n\n\n\n<p>Der Ausgabe wird jetzt eine \u00dcberschrift, ein Datum, eine Seitenzahl und zwei Spalten zugef\u00fcgt. Wer braucht jetzt Zeilennummern?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nl story.txt<\/li>\n<\/ul>\n\n\n\n<p><strong>Der wc-Befehl:<\/strong><\/p>\n\n\n\n<p>Dieser Befehl ist kein Griff ins Klo. Es werden jetzt W\u00f6rter gez\u00e4hlt oder Zeichen oder Zeilen\u2026 Also es wird etwas gez\u00e4hlt\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wc story.txt<\/li>\n<\/ul>\n\n\n\n<p>Angezeigt werden nun die Zeilen, die W\u00f6rter und die Zeichen. Das Ergebnis ist wieder etwas schr\u00e4g, weil das Programm anders z\u00e4hlt als vielleicht vermutet. Der erste Absatz wird als eine Zeile gez\u00e4hlt. Die Leerzeilen werden auch gez\u00e4hlt und der zweite Absatz ist wieder nur eine Zeile f\u00fcr das \u201cword count Programm\u201c\u2026 Die Optionen sind folgende:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wc -l f\u00fcr Zeilen (Lines)<\/li>\n\n\n\n<li>wc -w f\u00fcr W\u00f6rter (Words)<\/li>\n\n\n\n<li>wc -c f\u00fcr Zeichen (Characters)<\/li>\n<\/ul>\n\n\n\n<p>In Verbindung mit dem ls-Befehl und der Pipe kann man damit die Anzahl in einem Ordner ermitteln lassen\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ls | wc -l<\/li>\n<\/ul>\n\n\n\n<p>Das Ergebnis sollte mit der Angabe im Dateimanager \u00fcbereinstimmen.<\/p>\n\n\n\n<p><strong>Der sort-Befehl:<\/strong><\/p>\n\n\n\n<p>Jetzt soll der Dateiinhalt zeilenweise sortiert werden \u2013 dazu gibt es den sort-Befehl. In der Beispieltdatei sind drei Namen absichtlich in falscher Reihenfolge eingetragen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sort abx.txt<\/li>\n<\/ul>\n\n\n\n<p>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\u00fcr gibt es eine L\u00f6sung\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LC_COLLATE=de_DE sort abc.txt<\/li>\n<\/ul>\n\n\n\n<p>In meinem System war deutsch aber schon voreingestellt. Der LC_COLLATE-Befehl sorgt dann f\u00fcr eine falsche Sortierung.<\/p>\n\n\n\n<p><strong>Der uniq-Befehl:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>uniq abc.txt<\/li>\n<\/ul>\n\n\n\n<p>Der uniq-Befehl filtert gleiche Zeilen aus \u2013 aber auch nur wenn sie direkt aufeinander folgen\u2026 Weil es jetzt mit vern\u00fcnftigen Praxisbeispielen immer schwieriger wird, lasse ich einige Filterkommandos aus und mache hier erstmal Schlu\u00df\u2026 Die Befehle cut, paste, expand, join, pr und tee werden also nur bei Bedarf in einem sp\u00e4teren Artikel vorgestellt\u2026<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieser Artikel liefert die Fortsetzung des Themas Textbearbeitung mit Filterkommandos\u2026<\/p>\n","protected":false},"author":1,"featured_media":791,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[21],"class_list":["post-1533","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=1533"}],"version-history":[{"count":3,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1533\/revisions"}],"predecessor-version":[{"id":2812,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1533\/revisions\/2812"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/791"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=1533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=1533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=1533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}