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