![linux 搜索表达式](https://linux22.com/image/1202496/linux%20%E6%90%9C%E7%B4%A2%E8%A1%A8%E8%BE%BE%E5%BC%8F%20.png)
我有几行类似的东西:
[abc] yy abc yy
[abc] yy fff yy
abc yy ddd yy
我想搜索并只得到带有表情的线条[英文]-方括号内- 而不是美国广播公司仅有的。
谢谢。
答案1
由于括号在 grep 的正则表达式语法中具有特殊含义,因此您需要对其进行转义
grep '\[abc\]' file
-F
或者使用或指定纯字符串匹配--fixed-strings
grep -F '[abc]' file
看man grep
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings (instead of regular
expressions), separated by newlines, any of which is to be
matched.
答案2
如果要搜索的文本存储在名为 FILE 的文件中,请将目录更改为cd
包含 FILE 的目录并运行以下命令:
grep \\[abc\\] < FILE
此命令具有简约风格,因为它不需要任何额外的引号字符,并且没有任何无用的用途cat
。
- 而是
cat
使用单个左尖括号<
。 - 不使用引号字符,而是对左方括号和右方括号进行转义,以便按字面意思解释为方括号字符。
答案3
使用 grep:
grep '\[abc\]' filename