Você não precisa de more (ou cat ) se você tem a lista de arquivos que você precisa para grep: apenas dê grep os arquivos como um argumento (não há necessidade de enviar os dados através de uma segunda ferramenta ):
grep -i abc *.txt | wc -l
A principal diferença é que find não apenas listará os arquivos no diretório atual (como a expansão do shell de *.txt ), mas também recorrerá aos subdiretórios:
find . -name "*.txt" | xargs grep -i abc | wc -l
No segundo caso, se houver alguns arquivos *.txt em subdiretórios, eles também serão fornecidos como argumentos para o comando grep .
E, a propósito, grep tem uma opção -c para contar as ocorrências (não há necessidade de wc )
grep -c -i abc *txt
também fornecerá o número de ocorrências por arquivo e não o total