J'essaie de trouver une commande ou de créer un script Linux qui peut faire ces deux commandes et répertorier l'otuput
find . -name '*bills*' -print
cela imprime tous les fichiers
./may/batch_bills_123.log
./april/batch_bills_456.log
..
à partir de ce résultat, je veux faire un grep pour un mot que je fais manuellement maintenant
grep 'put' ./may/batch_bill_123.log
et obtenir
sftp > put oldnet_1234.lst
J'espère obtenir le nom du fichier et sa correspondance.
./may/batch_bills_123.log sftp > put oldnet_1234.lst
..
..
and so on...
des idées?
Tu recherches -H
option dans gnu grep.
find . -name '*bills*' -exec grep -H "put" {} \;
-H, --with-filename
Print the filename for each match.
Maintenant que la question est plus claire, vous pouvez simplement le faire en un seul grep
grep -R --include "*bills*" "put" .
Avec des drapeaux pertinents
-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).