====== Filterbefehle ====== {{ :admin_grundlagen:prozess.svg?300}} Unter einem Filter versteht man Programm, die von ''stdin'' (Standardeingabe) lesen und auf ''stdout'' (Standardausgabe) schreiben können. Die meisten dieser Programme tun genau dies, wenn sie keinen Dateinamenparameter erhalten haben. Falls jedoch ein oder mehrere Dateinamenparameter übergeben worden sind, werden lediglich die dort genannten Dateien nacheinander verarbeitet, nicht aber ''stdin''. Um neben Dateien auch ''stdin'' zu verarbeiten, erlauben viele Programme die Angabe von ''-'' (einzelnes Minuszeichen bzw. Bindestrich) für ''stdin''. Eine echte Datei mit diesem Namen kann von diesen Programmen nicht verarbeitet werden. ==== cat ==== Null-Filter. Datei ausgeben. Eigentlich con**cat**enate: Mehrere Quellen verketten und ausgeben. Es ist genau das Gegenteil von ''split'' cat file1 file2 ==== tac ==== Zeilen einer Textdatei in umgekehrter Reihenfolge ausgeben tac file ==== head ==== Die ersten 10 Zeilen von Datei ''file'' ausgeben: head file Die ersten drei Zeilen von Datei ''file'' ausgeben: head -3 file head -n +3 file Alle Zeilen bis auf die letzten drei: head -n -3 file ==== tail ==== Die letzten 10 Zeilen von Datei ''file'' ausgeben: tail file Die letzten 3 Zeilen von Datei ''file'' ausgeben: tail -3 file Die Zeilen ab der 3. Zeile von Datei ''file'' ausgeben: tail +3 file Die letzten 10 Kernelmeldungen anzeigen: dmesg | tail Logdatei ''/var/log/messages'' fortlaufend anzeigen: ((''-F'' ist die Kurzform von ''%%--%%follow=name''. Das ist besser als ''-f'', da ''-F'' nicht dem Inode, sondern dem Namen folgt. Log-Dateien werden gelegentlich rotiert, und die alte Datei ändert sich dann nicht mehr, weil jetzt in eine neue Log-Datei mit dem bisherigen Namen geschrieben wird.)) tail -F /var/log/messages ==== sort ==== Datei ''file'' alphabetisch sortieren: sort file Beim Sortieren identische Zeilen (Dubletten) entfernen: sort -u file Verzeichnisse nach Größe (nummerisch) sortiert anzeigen: du -msx /usr/* | sort -n {{ :admin_grundlagen:prozesspipe.svg |}} Einträge der Benutzerliste nach dem dritten durch Doppelpunkt getrennten Feld ''uid'' (nummerisch) sortiert anzeigen: sort -k3n -t: /etc/passwd ==== uniq ==== aufeinander folgende gleiche Zeilen eliminieren uniq file aufeinander forlgende gleiche Zeilen zählen uniq -c file ==== nl ==== Datei numeriert ausgeben (Formatierung variiert zwischen diesen Kommandos): nl file cat -n file grep -n "" file ==== grep ==== Zeilen mit dem Muster "pat" in Datei(en) ausgeben grep "pat" file Negation grep -v "pat" file Rekursiv (-r), case insensitive (-i) und mit Ausgabe Dateinamen (-H) Inhalte suchen grep -riH "pat" dir ==== tr ==== Zeichen ersetzen (Arbeitet **nur** als Filter nicht mit Dateien) cat vornamen | tr "aeiou" "eioua" cat vornamen | tr "a-zA-Z" "A-Za-z"