find -print0
produz saída com caracteres nulos como delimitadores. xargs -0
requer entrada com caracteres nulos como delimitadores. Seu primeiro comando xargs
obtém seus caracteres nulos de find
; o segundo vê caracteres de nova linha.
Tente isto:
find . -type f -print0 | \
xargs -0 file | \
grep text | \
grep -v long | \
cut -d: -f1 | \
tr '\n' 'find . -type f -print0 | \
xargs -0 file | \
grep text | \
grep -v long | \
cut -d: -f1 | \
tr '\n' '%pre%' | \
xargs -0 awk -f someprocessing.awk
' | \
xargs -0 awk -f someprocessing.awk
(Isso deve funcionar para a versão GNU Coreutils de tr
; não tenho certeza sobre outras implementações tr
.)