Es ist bekannt, dass Programme mit grafischer Oberfläche bequemer zu bedienen sind, weil sie für hohe Anforderungen ausgelegt sind, außerdem lassen sich mit dem Terminal bestimmte Aufgaben viel schneller lösen. So gibt es ein Dienstprogramm wc, das die Anzahl der Zeilen in einer Datei zählen kann. Die Anzahl der Zeilen sagt nicht viel aus, aber wenn mehrere Befehle kombiniert werden, kann man die Zeilen zählen, wobei die notwendigen Parameter berücksichtigt werden. Wie zählt man Zeilen in einer Linux-Datei? Im Folgenden werden einige einfache, aber effektive Beispiele für die Verwendung der Befehle grep, sed und awk vorgestellt.
Wir haben uns bereits mit dem WC-Befehl beschäftigt, nun sollten wir uns mit einem seiner wichtigsten Parameter vertraut machen -l
. Er zählt die Übergänge zu einer neuen Zeile, d. h. die gesamte Zeile wird gezählt, auch Leerzeilen. Der Befehl bewältigt die Aufgabe schneller als alle anderen, aber es sind nur bestimmte Zeichenfolgen möglich - unter einer bestimmten Bedingung.
$ wc -l name_file
$ grep -c $ name_file
$ sed -n $= name_file
$ awk 'END{ print NR }' name_file
Wie wir sehen, ist das Ergebnis dasselbe, aber der wc-Befehl benötigt weniger Zeit für die Aufgabe. Die anderen Befehle sind für komplexe Abfragen geeignet. Mit dem Befehl grep können Sie Zeichenketten finden, die nur aus Text bestehen: grep -c 'text' file_name
.
$ grep -c 'text' file_name
Der Befehl grep verarbeitet reguläre Ausdrücke, so dass Sie mehrere AND-, OR- und NOT-Bedingungen kombinieren können.
Wenn sed eine Textverarbeitung durchführt, ist es jedoch viel einfacher, eine abschließende Zählung der Zeilen mit dem Befehl wc durchzuführen. Sie können alle Zeilen löschen, die weniger als drei Zeichen lang sind. und komplexe Fälle werden ohne Kommentare gezählt.
$ sed -r '/^.{,3}$/d' file_name | wc -l
Wenn die Aufgabe einfach ist, kann sie auch auf andere Weise erledigt werden. Der awk-Befehl ist einfacher und leichter zu verstehen.
$ awk 'length >3' file_name | wc -l
Zur Veranschaulichung des awk-Befehls führen wir die Zählung von Zeichenfolgen durch, während wir in der csv-Tabellendatei nach dem gewünschten Wert suchen.
Im Beispiel soll die Anzahl der Zeilen gezählt werden, in denen der Wert des zweiten Parameters größer als 50 ist.
$ awk '$2+0 > 50' file_name | wc -l
Fügen Sie 0 zu dem Ausdruck hinzu, um alle nicht-numerischen Ausdrücke zu entfernen.