Mesclar todos os arquivos da árvore de diretórios

2

Eu tenho um diretório chamado / home / foobar / que contém vários arquivos de texto em vários sub-diretórios. Eu preciso gerar um arquivo que tenha o conteúdo mesclado de todos os arquivos dentro dessa estrutura de diretórios.

A ordem em que os arquivos são mesclados não importa. Eu posso copiar todos os arquivos para um diretório primeiro e depois mesclar, mas nesse caso a solução deve levar em conta que os arquivos não possuem nomes únicos.

    
por user254173 02.06.2015 / 03:20

2 respostas

2

É uma tarefa simples para find e cat :

 find <path_to_files> -type f -print0 | xargs -0 -I {} cat {} >> merged

O conteúdo de todos os arquivos em <path_to_files> e em todas as subpastas será adicionado a merged . Portanto, remova merged para cada nova execução do comando.

    
por A.B. 02.06.2015 / 06:56
-1

Isso deve funcionar (substituindo path/to/dir pelo caminho para o diretório base):

for i in $(find /path/to/dir -type "f" ); do cat "$i">>OUTPUT.txt;done
    
por Julian Stirling 02.06.2015 / 04:49