Se você sabe quantas pastas aninhadas existem, tente
wc -l * > file
wc -l */* >> file
wc -l */*/* >> file
etc.
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?
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:
Tags command-line windows linux cmd.exe