I have bunch of directories with each and every one of them containing a file. Now some of these files are hidden. I need to find a string that's in one of the hidden files.

I tried

fgrep -r "*medium*" .

find . | fgrep '*medium*'

medium is the string that I need to find. None of these commands find the word that I need.

  • 1
    Is the string you are searching for medium or *medium*? Nov 5, 2016 at 3:25
  • 1
    Please clarify your question if it hasn't been answered.
    – pfnuesel
    Nov 5, 2016 at 7:25

1 Answer 1

grep -r --include=.* medium .

man grep:

          Search  only  files whose base name matches GLOB (using wildcard
          matching as described under --exclude).
  • Aren't hidden files searched anyway?
    – pfnuesel
    Nov 5, 2016 at 1:45
  • 1
    Yes, but the question was to search in hidden files only. Nov 5, 2016 at 1:46
  • This one doesn't find it either. I think my question is not clear. There are bunch of text files in every single sub directory and all of them has the string "Hello world" that one i can find easy. what i need to find is the one with the string "medium". Nov 5, 2016 at 2:36
  • If you're using the wildcard to match a regexp, use grep -rE (you must understand what the wldcard means in this case). if you're searching for the exact string, use grep -r "medium" or fgrep -r "medium".
    – jai_s
    Nov 5, 2016 at 4:04
  • I think the question isn't clear. This answers it as stated, but I suspect @SajaPeiris means the file is hard to find rather than actually "hidden." (Just a suspicion based on the wording of the question and the comment above.) Or, the file is hidden using e.g. macOS Finder settings rather than a dot-name. Anyway, upvoted for the --include flag.
    – Wildcard
    Nov 5, 2016 at 4:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .