linux 搜索表达式

linux 搜索表达式

我有几行类似的东西:

[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

相关内容