Você pode usar cat
com o operador >>
. Dependendo da estrutura de diretórios e do local dos arquivos, você pode usar ls
ou find
para localizar os arquivos e, em um shell, repetir a iteração desses arquivos enquanto anexa a um arquivo de destino. Por exemplo:
for i in $(find /my/path -iname "*.txt")
do
cat $i >> result.txt
echo "====$i====" >> result.txt
done
Para verificar se você possui dados de todos os arquivos, você pode inserir um padrão temporário ao final de cada anexo no arquivo result.txt. Posteriormente, você poderá grep
do padrão e verificar se todos os arquivos foram realmente anexados. Como mostrado no loop acima, o arquivo result.txt
deve agora conter a linha ====filename====
para cada arquivo encontrado. Mais tarde, você pode remover essas linhas usando sed
da seguinte forma:
sed /'^===='/d result.txt > tmp && mv tmp result.txt
Certifique-se de que o padrão escolhido seja exclusivo, caso contrário, outras linhas poderão ser excluídas com o comando sed acima.