Ответ 1
Вы ищете опцию -H
в gnu grep.
find . -name '*bills*' -exec grep -H "put" {} \;
Вот объяснение
-H, --with-filename
Print the filename for each match.
Я пытаюсь найти команду или создать Linux script, который может выполнять эти две команды и перечислить otuput
find . -name '*bills*' -print
выводит все файлы
./may/batch_bills_123.log
./april/batch_bills_456.log
..
из этого результата Я хочу сделать grep для слова, которое я делаю вручную прямо сейчас
grep 'put' ./may/batch_bill_123.log
и получим
sftp > put oldnet_1234.lst
Я хотел бы получить имя файла и его совпадение.
./may/batch_bills_123.log sftp > put oldnet_1234.lst
..
..
and so on...
любые идеи?
Вы ищете опцию -H
в gnu grep.
find . -name '*bills*' -exec grep -H "put" {} \;
-H, --with-filename
Print the filename for each match.
Теперь, когда вопрос более ясен, вы можете просто сделать это за один grep
grep -R --include "*bills*" "put" .
С соответствующими флагами
-R, -r, --recursive
Read all files under each directory, recursively; this is
equivalent to the -d recurse option.
--include=GLOB
Search only files whose base name matches GLOB (using wildcard
matching as described under --exclude).