0

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.

4
4

Try to escape the characters grep \\-R myfile.txt:

Example:

$ touch test.txt
$ echo "-R" >> ./test.txt
$ cat test.txt
-R
$ grep \\-R ./test.txt
-R
1
  • Thank you, your answer also works for me! – Adrian Jun 9 '19 at 22:13
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).

2

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.