Outros mostraram como obter os tamanhos dos arquivos, eis a causa do seu erro estranho:
Por causa das aspas simples, esta parte
find ... -exec 'awk "{print $5}" "{}"' \;
fornece find
três parâmetros, -exec
, ;
e o meio que contém awk "{print $5}" "{}"
. O {}
é substituído pelo nome do arquivo atual, digamos ./l16696092.req
, resultando em awk "{print $5}" "./l16696092.req"
. Como esse foi o primeiro parâmetro para o -exec
, é considerado como o nome do comando para executar espaços, aspas e todos . Daí os erros.
find -exec
funciona melhor sem o nível externo de aspas:
find ... -exec awk '{print $5}' {} \;
Mas isso, é claro, executará awk
para ler o (conteúdo dos) arquivos encontrados por find
, não obter seus tamanhos. (Ainda precisamos citar o $
em $5
com aspas simples ou uma barra invertida, para que o shell não tente expandi-lo.)