Voici la commande que j'utilise pour répertorier certains fichiers:
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \;
-rw-r--r-- 1 qa1wrk15 test 1265190 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_7.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1345554 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_2.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1370532 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_3.20110929.extract.sys
-rw-r--r-- 1 qa1wrk15 test 1399854 Sep 29 01:14 ./var/can/projs/ar/rep/extract/Sep/29/ar.ARAB-PI_8.20110929.extract.sys
etc.
Maintenant, je veux calculer la taille totale de ces fichiers en résumant la 5e colonne. J'ai pensé à utiliser awk
, pour ce faire, j'ai donc testé ce qui suit dans un répertoire particulier
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Je ne comprends pas quel est le problème, pourquoi cette erreur de syntaxe .
Je pense essayer
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
cela aussi, mais un simple awk
script ne fonctionne pas.
Veuillez me suggérer ou corriger si je me trompe, ou s'il existe une solution à ce problème.
la source
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'
ls
!@enzotib a déjà souligné quelle est votre erreur de syntaxe - je vais partir sur une petite tangente.
La sommation d'une colonne de chiffres est l'une de ces choses qui ne cessent d'apparaître. Je me suis retrouvé avec cette fonction shell:
Avec cela, votre solution devient:
Cela résumera les chiffres de la colonne 5 et imprimera la valeur.
la source
.aliases
dossier.Voici une autre façon de procéder en utilisant
du
:la source
du -ch --files0-from=-
me dit que mon total est "9.0G". Sweeeet!tail -1
.Dans le cas où HP-UX a
find
également une-printf
option, il serait utile de composer une formule pourbc
calculer:Si la formule devient trop grande, elle peut être calculée étape par étape:
la source
Avec GNU
find
:Avec GNU
stat
:Avec BSD
stat
:la source
jq
un utilitaire? Ne semble pas trouver sur la distribution Debian (Debian 4.9.51-1 (2017-09-28) x86_64 GNU / Linux)