How to grep '---' in Linux? grep: unrecognized option '---'
Solution 1
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) orsed
: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.
Solution 2
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 (-)
Solution 3
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
Solution 4
Or you can use awk:
awk '/---/' file
Or sed:
sed -n '/---/p' file
Related videos on Youtube
Techie
Remembering that I'll be dead soon, is the most important tool I've ever encountered to help me make the big choices in Life. Because almost everything - all external expectations, all pride, all fear of embarrassment or failure, these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die, is the best way I know to avoid the trap of thinking you have something to lose. You are already naked, there is no reason not to follow your heart. -- Steve Jobs
Updated on September 18, 2022Comments
-
Techie over 1 year
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 toAll
. So I navigated to application folder and tried the below command.grep -ir '---' .
I end up with below error.
grep: unrecognized option '---' Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information.
Given that I'm using
Distributor ID: Ubuntu Description: Ubuntu 10.04.4 LTS Release: 10.04 Codename: lucid
How to grep '---' in Linux ?