]DaLcA[
14-09-2006, 18:16
Come da titolo, dovrei effettuare una ricerca scremando i risultati (tra le varie altre cose, che so fare) in base alla dimensione. Per i file non c'è problema, il comando find considera già quest'opzione, che però non funziona per le cartelle.
Sbattendo la testa e cercando in rete, il modo più semplice è usare il comando awk, ad esempio:
find /tmp/ -exec du -sb {} \; | awk '{if ($1 > 0 && $1 < 10000) print $2}'
Nota: per semplicità ho deciso di usare il du con la find anche per i file (senza quindi l'opzione -type d).
Beh, da console funziona tutto perfettamente, solo che io ho bisogno di metterlo in uno script. Ecco, mi sono accorto che non posso passare i miei argomenti nel codice dell'awk (per colpa degli apici singoli, credo), quindi non posso dargli i limiti per la dimensione, ad esempio:
#!/bin/bash
PERCORSO="$1"
DIM_MIN="$2"
DIM_MAX="$3"
find $PERCORSO -exec du -sb {} \; | awk '{if ($1 > "$DIM_MIN" && $1 < "$DIM_MAX") print $2}'
Ora non so proprio come fare, qualcuno ha in mente qualcosa in proposito? Altri metodi per scremare le cartelle in base alla dimensione sono più che ben accetti :)
Sbattendo la testa e cercando in rete, il modo più semplice è usare il comando awk, ad esempio:
find /tmp/ -exec du -sb {} \; | awk '{if ($1 > 0 && $1 < 10000) print $2}'
Nota: per semplicità ho deciso di usare il du con la find anche per i file (senza quindi l'opzione -type d).
Beh, da console funziona tutto perfettamente, solo che io ho bisogno di metterlo in uno script. Ecco, mi sono accorto che non posso passare i miei argomenti nel codice dell'awk (per colpa degli apici singoli, credo), quindi non posso dargli i limiti per la dimensione, ad esempio:
#!/bin/bash
PERCORSO="$1"
DIM_MIN="$2"
DIM_MAX="$3"
find $PERCORSO -exec du -sb {} \; | awk '{if ($1 > "$DIM_MIN" && $1 < "$DIM_MAX") print $2}'
Ora non so proprio come fare, qualcuno ha in mente qualcosa in proposito? Altri metodi per scremare le cartelle in base alla dimensione sono più che ben accetti :)