Recursive regular expression search is a universal tool for code wrangling. It pretty much works on any source code tree and comes in handy when data wrangling too.
My favourite tool for this is ripgrep mostly because its defaults are highly sane and 90% of the time just typing
rg 'strange text' just works.
It combines most of the features of
grep into one more modern, faster utility.
Interestingly a lot of the power and speed of tool comes from the underlying Rust regex implementation.