Похоже, что вам действительно нужен конвейер . Grep хорошо обрабатывает этот вариант использования, позволяя повторно фильтровать ранее отфильтрованные результаты, принимая данные на стандартный ввод.
Например:
# Search for "bar" in lines that have "foo."
grep foo * | grep bar
# Search for "baz" in lines that don't have "quux."
grep -v quux * | grep baz