Este es el comando que estoy usando para enumerar algunos archivos:
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
y así.
Ahora quiero calcular el tamaño total de estos archivos resumiendo la quinta columna. Pensé en usar awk
, para hacer esto, así que probé lo siguiente en un directorio particular
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
No entiendo cuál es el problema, por qué este error de sintaxis .
Estoy pensando en probar
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
esto también, pero un awk
script simple no funciona.
Sugiérame o corríjame si estoy equivocado o si hay una solución para esto.
shell-script
ksh
hp-ux
munish
fuente
fuente
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'
ls
!@enzotib ya ha señalado cuál es su error de sintaxis: voy a hacer una pequeña tangente.
Sumar una columna de números es una de esas cosas que sigue apareciendo. Terminé con esta función de shell:
Con esto, su solución se convierte en:
Eso sumará los números en la columna 5 e imprimirá el valor.
fuente
.aliases
archivo.Aquí hay otra forma de hacer esto usando
du
:fuente
du -ch --files0-from=-
me dice que mi total es "9.0G". Sweeeet!tail -1
.En caso de que HP-UX
find
también tenga una-printf
opción, sería útil componer una fórmula parabc
calcular:Si la fórmula se vuelve demasiado grande, se puede calcular paso a paso:
fuente
Con GNU
find
:Con GNU
stat
:Con BSD
stat
:fuente
jq
una utilidad? No parece encontrar en la distribución de Debian (Debian 4.9.51-1 (2017-09-28) x86_64 GNU / Linux)