Como obter todos os nomes de subpastas que consistem apenas em maiúsculas?

1

Como obter as pastas em uma pasta pai, cujos nomes são compostos de A-Z, sem minúsculas, sublinhados, pontos ou qualquer outra coisa?

    
por Lee 10.05.2016 / 16:20

2 respostas

2

Seu uso de 'pasta pai' é um pouco confuso, isso irá encontrar todas as pastas (na verdade, diretórios) em um determinado caminho, sem atravessar a árvore inteira, que são compostos apenas de A-Z.

find /given/path -type d -maxdepth 1 -regextype sed -regex ".*/[A-Z]*"

Por exemplo, para fazer o diretório atual,

find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"

Para fazer o pai do diretório atual,

find .. -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"

Para fazer o diretório atual e todos os diretórios abaixo,

find . -type d -regextype sed -regex ".*/[A-Z]*"

Exemplo de saída,

tony@trinity:~$ find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*"
./AA
./TEST

Agora, se você precisar remover o ./ da saída, você poderá apenas cut depois.

tony@trinity:~$ find . -maxdepth 1 -type d -regextype sed -regex ".*/[A-Z]*" | cut -c 3-
AA
TEST

Mas isso só funciona se você não percorrer toda a árvore.

    
por 10.05.2016 / 16:43
0

Tente o seguinte comando:

ls -1 | grep -w "[A-Z]*"
    
por 10.05.2016 / 16:33