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