from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search



grep text_to_find *.log
find [text_to_find] by checking all the logfiles in the current folder
grep -r text_to_find *
find [text_to_find] by checking all files in the current folder or under it

Note that you can't do e.g. grep -r [text_to_find] *.log because that will only search in folders named [something].log. The reasons for this are complicated.


  • So, how do you grep for a string which contains spaces and quote characters? This is probably some standard feature of Linux Shell syntax which everyone knows, but I don't, and that's why this page needs examples.
    A: Tentatively, you can surround a string with double-quotes and escape any quotes in the search-string with the backslash character. (Single quotes do not seem to work.)
  • Likewise, how do you search a group of files? Using "*.*" for FILE doesn't seem to work, and leaving the FILE argument blank tells grep to expect input from STDIN.
    A: apparently "*" by itself; see examples above


The backtick character ("`") seems to mean "insert the output of this command here" -- so if you're trying to search for a literal backtick, it needs to be escaped with "\" ("\`"). This comes up sometimes when searching for SQL phrases.