grep LMN20113456 LMN2011*
nebo pokud chcete prohledávat rekurzivně v podadresářích:
find . -type f -name 'LMN2011*' -exec grep LMN20113456 {} \;
Lze to provést bez find
také pomocí grepu "--include"
možnost.
Manová stránka grep říká:
--include=GLOB
Search only files whose base name matches GLOB (using wildcard matching as described under --exclude).
Chcete-li tedy provést rekurzivní vyhledávání řetězce v souboru odpovídajícímu konkrétnímu vzoru, bude to vypadat nějak takto:
grep -r --include=<pattern> <string> <directory>
Chcete-li například rekurzivně hledat řetězec "mytarget" ve všech souborech Makefiles:
grep -r --include="Makefile" "mytarget" ./
Nebo chcete-li hledat ve všech souborech začínajících "Make" v názvu souboru:
grep -r --include="Make*" "mytarget" ./
Grep NEPOUŽÍVÁ „zástupné znaky“ pro vyhledávání – to je shell globbing, jako *.jpg. Grep používá „regulární výrazy“ pro vyhledávání vzorů. Zatímco v shellu '*' znamená "cokoli", v grep to znamená "odpovídající předchozí položce nula nebo vícekrát".
Více informací a příklady zde:http://www.regular-expressions.info/reference.html
Odpověď na vaši otázku - můžete najít soubory odpovídající nějakému vzoru s grep:
find /somedir -type f -print | grep 'LMN2011' # that will show files whose names contain LMN2011
Poté můžete prohledávat jejich obsah (nerozlišují se malá a velká písmena):
find /somedir -type f -print | grep -i 'LMN2011' | xargs grep -i 'LMN20113456'
Pokud cesty mohou obsahovat mezery, měli byste použít funkci "nulový konec":
find /somedir -type f -print0 | grep -iz 'LMN2011' | xargs -0 grep -i 'LMN20113456'