Repetindo subpastas para executar o comando em vários diretórios

0

Estou em uma máquina Windows. No entanto, instalei o Cygwin e atualizei meu caminho de variável de ambiente que me permite executar comandos do Linux por meio de um terminal Windows.

Eu gostaria de executar o seguinte comando:

wc -l * > total 

em muitas pastas. Minha configuração é esta:

A pasta pai tem 24 subpastas, cada uma com o nome PKA1, PKA2, etc., até PKA24

Eu quero entrar em cada subpasta. Mas dentro de cada subpasta eu preciso ir mais longe. Eu preciso descer mais três níveis (apenas uma subpasta em cada diretório neste momento), mas o caminho parece:

PKA1/timestep_size/v_0.001/500eV

Em seguida, em cada subpasta nessa profundidade, há quatro pastas:

O1
O3
Si3
Si5

Eu gostaria de entrar em cada um deles e executar meu comando. Existe uma maneira rápida de fazer isso?

    
por Jackson Hart 08.07.2016 / 23:41

2 respostas

1

Se você sabe quantas pastas aninhadas existem, tente

wc -l * > file
wc -l */* >> file
wc -l */*/* >> file

etc.

    
por 09.07.2016 / 03:37
0

Use um loop FOR.

Da sua pasta principal, faça:

FOR /R %G IN (*) DO wc -l %G >>total

Isso deve fazer o comando para cada arquivo nesse diretório.

A opção / R faz com que ela seja executada em todos os arquivos e > > acrescenta, em vez de sobrescrever a saída para o seu arquivo.

Mais informações:

link link

    
por 09.07.2016 / 01:30