Eu tenho minha pasta com esses arquivos:
ls myfolder
filefoo filebar filefoobar
Por exemplo, o conteúdo de filefoo é:
total: 379400041
cache_object://localhost/active_requests 379400041 6778 0-13955161 0-14111309 0-12250718 0-11422369 0-11901178 0-11781835 0-12687756 0-17663930 5-110207691 6-123940805 2-39477289 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0 0-0
bla bla bla
Nota: o resto dos arquivos tem a mesma estrutura interna, mas os números mudam
Portanto, o valor que estou interessado em extrair desses arquivos é "total: número". este valor está sempre na primeira linha de cada arquivo:
find myfolder -type f -exec awk '/^total:/{print $NF}' {} +
379400041
35402285
8589934592
E devo compará-lo com esta variável:
max="1073741824"
Então, o que eu preciso é que, se algum desses valores exceder a variável $max (valor > $max), ele deve gerar o arquivo em uma lista de saída. Exemplo (não funcional):
if (( "value" > "$max" )); then
# or if [ "value" -gt "$max" ]; then
the command to send the file to a list is missing > output.lst
else
echo "do nothing"
fi
saída esperada:
cat output.lst
filefoobar
Porque filefoobar tem 8589934592 e este valor > $max
Como fazer isso? obrigado
Tente isto:
Observe o uso de acentos graves e que não há espaços ao redor do "=".
E é claro que não há verificação de erros aqui.