Wenn ich programmiere ...
Wie groß seid ihr, um Dateien zu erstellen? Wie groß ist die vorhandene Datei? Ich möchte die Anzahl der Zeilen in jeder Datei wissen.
Ich denke, dort ist.
Zum Lernen habe ich beschlossen, es mit einem Befehl zu bekommen!
Ich habe Linux (Ubuntu) unter Windows 10 mit WSL installiert und einen Befehl gegeben.
Verwenden Sie den Befehl wc Wie nachstehend Wenn Sie es als wc-Zieldatei beschreiben
$ wc *.txt
13 13 38 t01.txt
38 33 106 t02.txt
4 3 7 t03.txt
21 18 43 t04.txt
75 33 116 t05Service.txt
18 16 35 t06Service.txt
148 14 171 t07Service.txt
317 130 516 total
Sie können die Informationen der txt-Datei abrufen, die im aktuellen Verzeichnis vorhanden ist. Die erfassten Informationen werden für jeden Artikel angezeigt.
Anzahl der Zeilen Anzahl der Wörter Dateikapazität (Anzahl der Bytes))Dateiname
13 13 38 t01.txt
...
...
317 130 516 gesamt hier ist die Summe
Da gibt es bei dieser Rate viele zusätzliche Informationen Holen Sie sich nur die Anzahl der Zeilen mit der Option -l
~/work$ wc *.txt -l
13 t01.txt
38 t02.txt
4 t03.txt
21 t04.txt
75 t05Service.txt
18 t06Service.txt
148 t07Service.txt
317 total
Es ist viel einfacher zu sehen, da es nur die Anzahl der Zeilen und der Dateiname ist.
wc Befehl Pipe '|' Sortierbefehl wurde verwendet.
$ wc *.txt -l | sort
4 t03.txt
13 t01.txt
18 t06Service.txt
21 t04.txt
38 t02.txt
75 t05Service.txt
148 t07Service.txt
317 total
Es war schön in der Reihenfolge der Anzahl der Dateizeilen angeordnet.
Als nächstes werde ich versuchen, nur die Datei "*** Service.txt" abzurufen.
$ wc *Service.txt -l | sort
18 t06Service.txt
75 t05Service.txt
148 t07Service.txt
241 total
Hurra! Ich konnte nur die Anzahl der Zeilen in der Servicedatei abrufen.
・ ・ ・: Entspannt:
Löschen Sie zunächst die TOTAL-Zeile, da dies ein Hindernis darstellt.
Ich habe den Befehl sed verwendet. Dies stellt die letzte Zeile dar, wenn $ im Adressteil angegeben ist, sodass d (Löschen) dafür ausgeführt wird.
$ wc *.txt -l | sort | sed '$d'
4 t03.txt
13 t01.txt
18 t06Service.txt
21 t04.txt
38 t02.txt
75 t05Service.txt
148 t07Service.txt
Es ist verschwunden! Außerdem Verwenden Sie den Befehl awk, um den Durchschnitt anzuzeigen.
$ wc *.txt -l | sort | sed '$d' | awk '{n += $1}{i +=1 }; END{print int(n/i) }'
45
Ich habe die durchschnittliche Anzahl der Zeilen "45" aus dem obigen Befehl erhalten! !! : Augen rollen:
Was macht awk übrigens? .. ..
Addiere die Anzahl der Zeilen zu n für jede Zeile zu i+1 Wenn alle Linien fertig sind, wird Folgendes angezeigt: Minderheitspunkte abschneiden (n ÷ i)
awk '{n += $1} {i +=1 }; END {print int(n/i) }'
Es ist wie
-l
Zeigen Sie die Anzahl der Zeilen in der Datei an.
-c
Zeigen Sie die Anzahl der Bytes in der Datei an.
-m
Zeigen Sie die Anzahl der Zeichen in der Datei an.
-L
Zeigen Sie die Anzahl der Bytes in der längsten Zeile an.
-w
Zeigen Sie die Anzahl der Wörter in der Datei an.
$ ls -1 | wc -l
Die Option des Befehls ls lautet "-1(Nummer 1)」
Die Option des Befehls wc lautet "l (unterer Buchstabe L des Alphabets)".
Referenz Was ist, wenn ich nur die letzte Textzeile löschen möchte?
[Anmerkung zu awk] (https://qiita.com/SYutaka/items/b6aadfa279c516a3b90b)
Recommended Posts