Eu tenho escrito shell script para mesclar o conteúdo do arquivo diferente Eu criei diretórios f1, f2, d1, d2 e arquivos sob eles, eu preciso mesclar o conteúdo de todos os arquivos: comand is
(find /home/ah5024331/f1 /home/ah5024331/f2 /home/ah5024331/d1 /home/ah5024331/d2 /home/ah5024331/f1 /home/ah5024331/f2 -type f | xargs -i cat {} ) > t.txt
a saída é:
--this is new text from f1 ----
--this is text from f2 ------this is new text from d1 ------this is new text from d2 -----this is new text from f1 ----
Eu preciso adicionar nova linha após cada final de arquivo gostar:
--this is new text from f1 ----
--this is text from f2
------this is new text from d1
------this is new text from d2
-----this is new text from f1 ----
Como fazer isso?
Qualquer ajuda seria apreciada com antecedência.
shell-script
xargs
cat
user
fonte
fonte
echo "FOOBAR" >> t.txt
e não apenasecho >> t.txt
?\n
no fim. Isso criará uma nova linha dupla em alguns casos. Para fazê-lo funcionar perfeitamente, você teria que lembrar do último caractere colocado na saída e verificar ao alternar para o próximo arquivo, eu acho.I need to add new line after every end of file like (...)
Crie um arquivo fictício com uma nova linha.
Agora execute seu script como abaixo.
fonte
Usando o GNU Parallel, é assim:
O GNU Parallel é um paralelizador geral e facilita a execução de trabalhos em paralelo na mesma máquina ou em várias máquinas para as quais você tem acesso ssh. E também pode substituir muitos
for
loops como neste caso.Se você tiver 32 tarefas diferentes que deseja executar em 4 CPUs, uma maneira direta de paralelizar é executar 8 tarefas em cada CPU:
Paralelamente, o GNU Parallel gera um novo processo quando um termina - mantendo as CPUs ativas e, portanto, economizando tempo:
Instalação
Se o GNU Parallel não for empacotado para sua distribuição, você poderá fazer uma instalação pessoal, que não requer acesso root. Isso pode ser feito em 10 segundos fazendo isso:
Para outras opções de instalação, consulte http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Saber mais
Veja mais exemplos: http://www.gnu.org/software/parallel/man.html
Assista aos vídeos de introdução: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Percorra o tutorial: http://www.gnu.org/software/parallel/parallel_tutorial.html
Inscreva-se na lista de e-mail para obter suporte: https://lists.gnu.org/mailman/listinfo/parallel
fonte