Hi friends! 🤓
I am on a gnulinux and trying to list all files in the active directory and it's subdirectories. I then want to pipe the output to "cat". I want to pipe the output from cat into grep.
Note, you almost never have to use cat. Just leaving it out would have been enough to find your file (although find is still better).
When you want to find a string in a file it's also enough to use grep string file instead of cat file | grep string. You can even search through multiple files with grep string file1 file2 file* and grep will tell you in which file the string was found.
-r to search recursively, . refers to the current directory.
Why use . instead of *? Because on it's own, * will (typically) not match hidden files. See the last paragraph of the 'Origin' section of: https://en.m.wikipedia.org/wiki/Glob_(programming). Technically your ls command (lacking the -a) flag would also skip hidden files, but since your comment mentions finding the string in 'any files,' I figured hidden files should also be covered (the find commands listed would also find the hidden files).
EDIT: Should have mentioned that -R is also recursive, but will follow symlinks, where -r will ignore them.