Gostaria de limitar a saída do comando find. No passado eu costumava usar para este comando ls, por exemplo:
ls *tgz|head -100|xargs -i mv "{}" ../
mas fiquei sabendo que o resultado pode ser imprevisível se o nome do arquivo contiver um novo caractere de linha. Então, uma maneira mais correta de fazer isso é algo assim:
find ... -print0 | xargs -0
Mas, com essa abordagem, não consigo limitar a saída de find com o comando head - ele mostra todos os nomes de arquivos separados por ^ @ sinal especial:
find . -name '*tgz' -print0|head -2|less
file1.tgz^@file2.tgz^@file3.tgz^@file4.tgz^@file5.tgz^@
Existe um método para eliminar esse constrangimento?
Eu tentei resolver isso com a ajuda do awk:
find . -name 'BATCHED*' -print0|awk 'BEGIN{RS=""}'
mas ainda exibe todas as linhas ou zero.
Pode ser resolvido com ajuda do awk? Existe uma solução melhor?
BTW. Eu encontrei esta referência muito instrutiva, mas não há resposta sobre a minha pergunta .