Como mesclar vários arquivos em um único arquivo em determinados diretórios

0

Eu quero escrever um script de shell para mesclar o conteúdo de vários arquivos em um determinado diretório.

DIR1 contains sample1.txt sample2.txt
    sample1.txt contents  :---this is sample1 file---
    sample2.txt contents  :---this is sample2 file---

DIR2 contains demo1.txt demo2.txt
    demo1.txt contents  :---this is demo1 file---

Eu tentei a solução:

(find /home/DIR1  /home/DIR2 -type f | xargs -i cat {} ) > /result/final.txt

Também obtive a saída, mas a sequência de arquivos foi alterada.

this is sample2 file---  this is sample1 file---  this is demo1 file---

Eu preciso da saída de todos os arquivos em uma linha diferente. como fazer isso? Existe alguma maneira de manter a ordem de saída de arquivos como se eu quiser colocar a saída do arquivo em particular no topo ou assim? e qual é o uso da opção " xargs -i " no cmd?

Obrigado.

    
por user 28.05.2015 / 15:10

2 respostas

1

Você pode usar isto:

(find directory -type f | xargs -i cat {} ) > TOTAL

Procura todos os arquivos no diretório e coloca todo o conteúdo em TOTAL.

    
por 28.05.2015 / 15:17
2

Você precisa ir diretamente para esse diretório:

cat /home/me/mydir/* > /home/me/finalData.txt
    
por 28.05.2015 / 15:16