Oggi mi è capitato un curioso problema: elaborando programmaticamente un lungo elenco di file ho notato che alcuni file avevano degli insidiosi spazi bianchi tra le lettere ed i numeri. Indagando più a fondo ho notato che non si trattava di comuni spazi bianchi, bensì di caratteri speciali che venivano visualizzati come spazi bianchi.
Per trovare file con caratteri speciali quali i caratteri di controllo si può usare il seguente comando:
1 |
find -type f -regextype posix-basic -regex '^.*/[^/]*[[:cntrl:]][^/]*$' |
Con il seguente comando invece è possibile recuperare sia i caratteri non-ascii che i caratteri di controllo, sia in file che cartelle:
1 |
find . -print0 | perl -n0e 'chomp; print $_, "\n" if /[[:^ascii:][:cntrl:]]/' |