Я часто хочу писать такие команды (в zsh, если это необходимо):
find <somebasedirectory> | \
grep stringinfilenamesIwant | \
grep -v stringinfilesnamesIdont | \
xargs dosomecommand
(или более сложные комбинации greps)
В последние годы find добавлен переключатель -print0, и xargs добавил -0, что позволяет обрабатывать файлы с пробелами в имени элегантным способом путем нумерации имен файлов вместо этого, что позволяет:
find <somebasedirectory> -print0 | xargs -0 dosomecommand
Однако grep (по крайней мере версия, которую я имею, GNU grep 2.10 на Ubuntu), похоже, не имеет эквивалента, чтобы потреблять и генерации строк с нулевым завершением; он имеет --null, но это только кажется связанным с использованием -l для вывода имен при поиске в файлах напрямую с помощью grep.
Есть ли эквивалентная опция или комбинация параметров, которые я могу использовать с grep? Альтернативно, есть простой и элегантный способ выразить свою команду команд просто используя find -regex или, возможно, Perl?