¿Existe un equivalente de grep para los conmutadores find's -print0 y xargs's -0?

A menudo quiero escribir comandos como este (enzsh, si es relevante):

find <somebasedirectory> | \
    grep stringinfilenamesIwant | \
    grep -v stringinfilesnamesIdont | \
    xargs dosomecommand

(o combinaciones más complejas de greps)

En años recientesfind ha añadido el-print0 cambiar, y xargs ha añadido-0, que permite el manejo de archivos con espacios en el nombre de una manera elegante al terminar los nombres de archivo en nulo, permitiendo esto:

find <somebasedirectory> -print0 | xargs -0 dosomecommand

Sin embargo,grep (Al menos la versión que tengo, GNU grep 2.10 en Ubuntu), no parece tener un equivalente al consumo.y generar líneas terminadas en nulo; Tiene--null, pero eso solo parece estar relacionado con el uso-l para dar salida a los nombres cuando se busca en archivos directamente con grep.

¿Existe una opción equivalente o una combinación de opciones que pueda usar con grep? Alternativamente, ¿hay una manera fácil y elegante de expresar mi canal de comandos simplemente usando el de Find?-regex, o tal vez Perl?

Respuestas a la pregunta(6)

Su respuesta a la pregunta