Este é o comando que estou usando para listar alguns arquivos:
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
e assim por diante.
Agora, quero calcular o tamanho total desses arquivos, resumindo a quinta coluna. Pensei em usar awk
, para fazer isso, então testei o seguinte em um diretório específico
>ls -lrt | awk `{ print $1 }`
ksh: syntax error at line 1 : `{' unmatched
Não entendo qual é o problema, por que esse erro de sintaxe .
Estou pensando em tentar
ls -lrt | awk `BEGIN {total = 0} {for(i=0;i<NR;i++){total+=$5}} END {printf "%d",total}
isso também, mas um awk
script simples não está funcionando.
Por favor, sugira ou corrija-me se estiver errado ou se houver uma solução alternativa para isso.
fonte
find . -name \*.extract.sys -size +1000000c -exec ls -lrt {} \; | awk '{ total += $5 }; END { print total }'
ls
!O @enzotib já apontou qual é o seu erro de sintaxe - vou sair um pouco tangente.
A soma de uma coluna de números é uma daquelas coisas que continua aparecendo. Eu terminei com esta função shell:
Com isso, sua solução se torna:
Isso somará os números na coluna 5 e imprimirá o valor.
fonte
.aliases
arquivo.Aqui está outra maneira de fazer isso usando
du
:fonte
du -ch --files0-from=-
me diz que meu total é "9.0G". Sweeeet!tail -1
.Caso o HP-UX
find
também tenha-printf
opção, isso seria útil para compor uma fórmula parabc
calcular:Se a fórmula ficar muito grande, poderá ser calculada passo a passo:
fonte
Com o GNU
find
:Com o GNU
stat
:Com o BSD
stat
:fonte
jq
um utilitário? Não parece encontrar na distribuição debian (Debian 4.9.51-1 (28-09-2017) x86_64 GNU / Linux)