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.
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.
Você precisa ir diretamente para esse diretório:
cat /home/me/mydir/* > /home/me/finalData.txt
Tags cat shell-script