I have a newly installed web application. In that there is a drop down where one option is ---. What I want to do is change that to All. So I navig
This happens because grep interprets --- as an option instead of a text to look for. Instead, use --:
grep -- "---" your_file
This way, you tell grep that the rest is not a command line option.
Other options:
use grep -e (see Kent's solution, as I added it when he had already posted it - didn't notice it until now):
use awk (see anubhava's solution) or sed:
sed -n '/---/p' file
-n prevents sed from printing the lines (its default action). Then /--- matches those lines containing --- and /p makes them be printed.
Another way is to escape each - with a backslash.
grep '\-\-\-' your_file
Escaping only the first - works too:
grep '\---' your_file
An alternative without quotes:
grep \\--- your_file
use grep's -e option, it is the right option for your requirement:
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify multiple search patterns, or to protect a pattern beginning with a hyphen (-). (-e is specified
by POSIX.)
to protect a pattern beginning with a hyphen (-)
Or you can use awk:
awk '/---/' file
Or sed:
sed -n '/---/p' file