If you use grep / egrep on a single file, it will display the matched patterns, but not the filename nor the line number.
This can be boring in case you encapsulate a grep / egrep call inside i.e a find:
find ./mydir -type f -name '*.msg' -exec grep 'mysearch' {} \;
In that case it will only print the match and you will not know in which file.
The trick is to add a dummy filename as a second file to search. Doing so will trick grep / egrep into thinking you are searching in multiples files, thus displaying the filename on each match.
/dev/null is the perfect target for the second dummy file as it will never match anything.
Example:
find ./mydir -type f -name ‘*.msg’ -exec grep ‘mysearch’ {} /dev/null \;
Bonus / reminder:
In grep / egrep use the -n option to also display the match line number
Example:
find ./mydir -type f -name ‘*.msg’ -exec grep -n ‘mysearch’ {} /dev/null \;
#sysadmin #tips #tricks #grep #egrep