I tried to use the grep
command to search for a string like -R
in a file. But the command thinks, that I am trying to hand over an option like -i
for ignore case.
3 Answers 3
The -e
option for grep
is for explicitly saying "the next argument is the pattern":
grep -e -R file
The above would search for line matching -R
in the file called file
.
The -e
option may occur multiple times on the command line, and grep
will use all the given patterns (you will get the lines back that matches any of the patterns).
As well as the previously mentioned answers, --
is used to signify the end of options, allowing you to use patterns afterward that may resemble an argument without being interpreted undesirably:
$ echo -R | grep -- '-R'
-R
"-R"
, not-R
grep -e -R ./-file1 file2
, where-R
is a pattern starting with-
, and./-file1
is a filename starting with-
.