Estou tentando concatenar vários arquivos que estão em diretórios diferentes usando o seguinte comando:
~$ find . -name ‘*.text’ -exec cat {} >> combined.text \;
No entanto, não parece estar funcionando, pois estou recebendo uma resposta como:
find: missing argument to `-exec'
Há algo que eu possa ter perdido?
Obrigado!
Responder1
Você está usando aspas unicode: ‘’
em vez de aspas normais ( ''
). Tente este comando:
find . -name '*.text' -exec cat {} + >> combined.text
Porém, se combined.text
já existir, irá imprimir um aviso, pois combined.text
será criado antes do lançamento find
e será encontrado pelo find
comando:
$ find . -name '*.text' -exec cat {} + >> combined.text
cat: ./combined.text: input file is output file
Você pode evitar isso com:
find . -name '*.text' ! -name combined.text -exec cat {} + >> combined.text