Tec*_*hie 15 linux shell ubuntu grep ubuntu-10.04
我有一个新安装的Web应用程序.在那里有一个选项是下拉---.我想做的是改变它All.所以我导航到应用程序文件夹并尝试以下命令.
grep -ir '---' .
我最终得到以下错误.
grep: unrecognized option '---'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
鉴于我正在使用
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.4 LTS
Release:    10.04
Codename:   lucid
如何在Linux中grep'---'?
fed*_*qui 22
这是因为grep解释---为选项而不是要查找的文本.相反,使用--:
grep -- "---" your_file
这样,您可以告诉grep其余部分不是命令行选项.
其他选择:
使用grep -e(参见肯特的解决方案,因为我已经发布它时添加了它 - 直到现在才注意到它):
使用awk(参见anubhava的解决方案)或sed:
sed -n '/---/p' file
-n防止sed打印行(默认操作).然后/---匹配包含那些线---和/p使它们被打印.
使用grep的-e选项,它是您的要求的正确选项:
   -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.)
保护以连字符开头的模式( - )
另一种方法是-用反斜杠转义每个。
grep '\-\-\-' your_file
也只转义第一个-作品:
grep '\---' your_file
不带引号的替代方案:
grep \\--- your_file