The following are 4 interesting command-line options for the grep command:
-i ignores case distinctions so that characters that differ only in case match each other.-w select only those lines containing matches that form whole words.-x select only those matches that exactly match the whole line.
-w and -x are used, then -x takes precedence-c suppress normal output; instead print a count of matching lines for each input file.I found all of these on the grep man page on LinuxCommand.org
Here are some examples of using these command-line options on files and directories from ./written_2:
-i$ grep -ilr "lucayans" .
./travel_guides/berlitz2/Bahamas-History.txt
This grep command still returns the Bahamas-History.txt file although Bahamas-History.txt contains the capitalized word “Lucayans”.
$ grep -ilr "ViStA" .
./non-fiction/OUP/Castro/chB.txt
./travel_guides/berlitz1/IntroDublin.txt
./travel_guides/berlitz1/IntroLakeDistrict.txt
./travel_guides/berlitz1/IntroMadeira.txt
./travel_guides/berlitz1/WhereToFrance.txt
./travel_guides/berlitz1/WhereToGreek.txt
./travel_guides/berlitz1/WhereToIbiza.txt
./travel_guides/berlitz1/WhereToIsrael.txt
./travel_guides/berlitz1/WhereToJerusalem.txt
./travel_guides/berlitz1/WhereToLakeDistrict.txt
./travel_guides/berlitz1/WhereToLosAngeles.txt
./travel_guides/berlitz1/WhereToMadeira.txt
./travel_guides/berlitz2/Algarve-WhereToGo.txt
./travel_guides/berlitz2/Athens-WhereToGo.txt
./travel_guides/berlitz2/Bahamas-WhereToGo.txt
./travel_guides/berlitz2/Canada-WhereToGo.txt
./travel_guides/berlitz2/CanaryIslands-WhereToGo.txt
./travel_guides/berlitz2/China-WhereToGo.txt
./travel_guides/berlitz2/Costa-WhereToGo.txt
./travel_guides/berlitz2/Crete-WhereToGo.txt
./travel_guides/berlitz2/CstaBlanca-WhereToGo.txt
./travel_guides/berlitz2/Nepal-WhatToDo.txt
./travel_guides/berlitz2/Portugal-WhereToGo.txt
./travel_guides/berlitz2/PuertoRico-WhereToGo.txt
./travel_guides/berlitz2/Vallarta-WhereToGo.txt
The -i here is important because without it, this command would return nothing.
-w$ grep -lrw "Lucayan" .
./travel_guides/berlitz2/Bahamas-WhereToGo.txt
This command doesn’t return Bahamas-History.txt because it contains “Lucayans” instead of “Lucayan”.
$ grep -lrw "vista" .
./travel_guides/berlitz1/WhereToFrance.txt
./travel_guides/berlitz1/WhereToGreek.txt
./travel_guides/berlitz1/WhereToJerusalem.txt
./travel_guides/berlitz1/WhereToLakeDistrict.txt
./travel_guides/berlitz2/Athens-WhereToGo.txt
./travel_guides/berlitz2/Bahamas-WhereToGo.txt
./travel_guides/berlitz2/China-WhereToGo.txt
./travel_guides/berlitz2/Crete-WhereToGo.txt
./travel_guides/berlitz2/CstaBlanca-WhereToGo.txt
./travel_guides/berlitz2/Nepal-WhatToDo.txt
The -w is useful in this case because it allows this command to not return the files that contain “vistas” but not “vista”. Without -w, many more files would be returned.
-x$ grep -lrx "baffled, bewildered parents" .
./non-fiction/OUP/Berk/ch1.txt
This command finds the file that contains the given line.
$ grep -lrwx "vistas" .
There is no output here. This is important because it shows that -x has precedence over -w since there is no line that contains only “vistas”
-c$ grep -rc "baffled, bewildered parents" non-fiction/OUP/Berk/
non-fiction/OUP/Berk/CH4.txt:0
non-fiction/OUP/Berk/ch1.txt:1
non-fiction/OUP/Berk/ch2.txt:0
non-fiction/OUP/Berk/ch7.txt:0
Instead of returning the file that contains the given string, this prints a count of matching lines for each of the files in the directory
$ grep -rc "self-esteem" non-fiction/OUP/Berk/
non-fiction/OUP/Berk/CH4.txt:0
non-fiction/OUP/Berk/ch1.txt:2
non-fiction/OUP/Berk/ch2.txt:2
non-fiction/OUP/Berk/ch7.txt:12
From this command, we see that -c is important because we can tell how frequent the given string appears in each file.