如何使用grep提取文件中包含[Homosapiens]字符串的指定行
问题排查与解决方法
原有命令失效原因
- 匹配规则中额外添加了不存在的
\*字符,你的目标行里没有星号,属于多增加了无效匹配条件 - 使用
-F(fgrep是grep -F的别名)参数时,grep会将匹配内容按纯字面字符串处理,不需要对特殊符号做转义,你额外添加的反斜杠会被当成要匹配的内容,自然无法命中目标行
正确实现命令
方法1:使用固定字符串匹配(推荐,不需要处理转义)
直接将你要匹配的完整字符串传给带-F参数的grep即可:
grep -F '[Homosapiens]' mytext.txt
等价的fgrep写法:
fgrep '[Homosapiens]' mytext.txt
方法2:使用正则匹配
如果不用-F参数走正则匹配逻辑,需要把正则里的特殊字符[和]转义,避免被识别为正则字符集语法:
grep '\[Homosapiens\]' mytext.txt
内容的提问来源于stack exchange,提问作者Jasmin Jonson
相关产品推荐
相关产品推荐

