grep输入文件中的精确单词
我的输入文件:grep输入文件中的精确单词,grep,Grep,我的输入文件: text.txt-要搜索的文件 patterns.txt-包含要在text.txt文件中搜索的单词列表(每行一个单词)的文件 text.txt是: abc def ghi jkl mno pqr ; stu zzz yyy xxx jkl abs abc1 ; mno jjj aaa abc1M1 pattern.txt是: abc pq abc1M1 如果我这样做: | => grep -
abc def ghi
jkl mno pqr ; stu
zzz yyy xxx
jkl abs abc1 ; mno
jjj aaa abc1M1
pattern.txt是:
abc
pq
abc1M1
如果我这样做:
| => grep -f patterns.txt text.txt
abc def ghi
jkl mno pqr ; stu
jkl abs abc1 ; mno
jjj aaa abc1M1
但是,只应返回两行:
abc def ghi
jjj aaa abc1M1
i、 e.仅与patterns.txt文件中给出的完整单词“abc”和“abc1M1”匹配的行。我应该如何构造我的查询
谢谢你的帮助
编辑:Cyrus建议尝试“-Fwf”选项,但它仍然没有给我想要的:
| => grep -Fwf patterns.txt text.txt
abc def ghi
此外,我正在mac电脑上运行grep:
| => grep --version
grep (BSD grep) 2.5.1-FreeBSD
使用GNU grep:
grep -Fwf pattern.txt text.txt
输出:
abc def ghi
jjj aaa abc1M1
abc def ghi
jjj aaa abc1M1
-F
:将模式解释为固定字符串,而不是正则表达式
-w
:仅选择包含构成整词的匹配项的行
请参阅:
mangrep
您好,谢谢您的回复。当我尝试这样做时,我得到:|=>grep-Fwf patterns.txt text.txt abc def ghi…请参阅主帖子中的编辑以获得格式化输出检查这两个文件是否有特殊字符:cat-A文件名
或cat-v文件名
我用“cat-v patterns.txt”和“cat-v text.txt”进行了检查,但没有特殊字符。输出与主帖子中显示的文件完全相同。啊哈!下载并安装了GNU grep,现在一切似乎都正常了。谢谢你的帮助!!