experimente isso (se o seu find
suportar a opção -maxdepth
):
find parent_dir -maxdepth 2 -type d \(
-name '[5-8][0-9][0-9][!0-9]*' -o -name '[5-8][0-9][0-9]' \) > my_file1.txt
Como posso encontrar todas as pastas que começam com um valor no intervalo de números de 500 a 899? Eu só preciso listá-los em um arquivo.
Informações adicionais:
593091_azerty_qwerty
ou 849934_blablablabla_bla_blabla
experimente isso (se o seu find
suportar a opção -maxdepth
):
find parent_dir -maxdepth 2 -type d \(
-name '[5-8][0-9][0-9][!0-9]*' -o -name '[5-8][0-9][0-9]' \) > my_file1.txt
Com zsh
, supondo que os números sejam sempre inteiros decimais (no intervalo suportado nativamente pelo seu processador):
setopt extended_glob
dirs=(<500-899>([^0-9]*|)(/N) */<500-899>([^0-9]*|)(/DN))
No entanto, observe que, para o segundo padrão, se houver links simbólicos para os diretórios no diretório atual, zsh
procurará o diretório <500-899>...
em seu destino.
Encurtado com fatoração de expansão de contraventamento:
dirs=({,*/}<500-899>([^0-9]*|)(/DN))
Se os números forem sempre seguidos por _
, você poderá simplificá-lo para:
dirs=({,*/}<500-899>_*(ND))
Observe que as versões de zsh
anteriores a 5.2, devido à forma como os inteiros são representados pelo processador, corresponderão aos números entre 500 e 899 módulo 2 64 , portanto, por exemplo coincidir com 590295810358705652224_something
, pois são 2 69 + 512.