Hmm. Você precisa do pipe e dos xargs? Parece que todo o seu exemplo realmente precisa de find
e echo
.
Eu estou supondo que este é um pedaço de um quebra-cabeça maior, então isso pode não funcionar no contexto do que você está fazendo, mas seu exemplo poderia ser escrito como:
$ find 'echo {a,b,c}.h d e.h' -name '*.h'
$ find $(echo {a,b,c}.h d e.h) -name '*.h'
... que, no meu sistema, resulta em find
verificando cada argumento individualmente:
find: 'a.h': No such file or directory
find: 'b.h': No such file or directory
find: 'c.h': No such file or directory
find: 'd': No such file or directory
find: 'e.h': No such file or directory
Eu não tenho uma máquina OSX para testar, e isso pode ser específico para o bash.