Не используйте кошку для этого. Вместо этого используйте grep DATABASE *или grep -n DATABASE *(если вы хотите знать номера строк, а также имена файлов) напрямую.
Смотрите бесполезное использование кошки .
Чтобы прояснить это немного: на cat *самом деле объединяет все файлы по мере их подачи в grep через канал, поэтому grep не может узнать, какой контент принадлежит какому файлу, и даже не может точно знать, сканирует ли он файлы или вы просто печатать очень быстро. Это все один большой стандартный поток ввода, когда вы используете канал.
Наконец, -Hэто почти наверняка избыточно, поскольку grep печатает имя файла по умолчанию, когда для поиска требуется более одного файла. Это может быть полезно в случае, если вы хотите проанализировать вывод, так как есть некоторая вероятность, что *glob расширится до одного файла, и grep в этом случае пропустит имя файла.