Quand je code ...
Quelle taille faites-vous pour créer des fichiers? Quelle est la taille du fichier existant? Je veux connaître le nombre de lignes dans chaque fichier.
Je pense que oui.
Pour étudier, j'ai décidé de l'obtenir avec une commande!
J'ai installé Linux (Ubuntu) sur windows10 en utilisant WSL et j'ai donné une commande.
Utilisez la commande wc Comme ci-dessous Si vous le décrivez comme un fichier cible wc
$ 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
Vous pouvez obtenir les informations du fichier txt qui existe dans le répertoire courant. Les informations acquises sont affichées pour chaque élément.
Nombre de lignes Nombre de mots Capacité du fichier (nombre d'octets))Nom de fichier
13 13 38 t01.txt
...
...
317130516 total voici le total
Puisqu'il y a beaucoup d'informations supplémentaires à ce tarif Obtenez uniquement le nombre de lignes avec l'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
C'est beaucoup plus facile à voir car ce n'est que le nombre de lignes et le nom du fichier.
Commande wc La commande de tri Pipe '|' a été utilisée.
$ 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
Il était bien arrangé dans l'ordre du nombre de lignes de fichier.
Ensuite, j'essaierai d'obtenir uniquement le fichier "*** Service.txt".
$ wc *Service.txt -l | sort
18 t06Service.txt
75 t05Service.txt
148 t07Service.txt
241 total
Hourra! J'ai pu obtenir uniquement le nombre de lignes dans le fichier de service.
・ ・ ・: Détendu:
Tout d'abord, supprimez la ligne TOTAL car c'est un obstacle.
J'ai utilisé la commande sed. Ceci représente la dernière ligne lorsque $ est spécifié dans la partie adresse, donc d (suppression) est exécuté pour elle.
$ 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
Il a disparu! en outre Utilisez la commande awk pour afficher la moyenne.
$ wc *.txt -l | sort | sed '$d' | awk '{n += $1}{i +=1 }; END{print int(n/i) }'
45
J'ai obtenu le nombre moyen de lignes "45" de la commande ci-dessus! !! : Rolling_eyes:
Au fait, que fait awk? .. ..
Ajouter le nombre de lignes à n pour chaque ligne à i+1 Lorsque toutes les lignes sont terminées, afficher: Tronquer les points minoritaires (n ÷ i)
awk '{n += $1} {i +=1 }; END {print int(n/i) }'
C'est comme
-l
Affichez le nombre de lignes du fichier.
-c
Affichez le nombre d'octets dans le fichier.
-m
Affichez le nombre de caractères du fichier.
-L
Affiche le nombre d'octets dans la ligne la plus longue.
-w
Affichez le nombre de mots du fichier.
$ ls -1 | wc -l
L'option de la commande ls est "-1(Numéro 1)」
L'option de la commande wc est "l (lettre L minuscule de l'alphabet)"
référence Que faire si je souhaite effacer uniquement la dernière ligne de texte?
[Note sur awk] (https://qiita.com/SYutaka/items/b6aadfa279c516a3b90b)