这就是我试过的
grep -n 'qtrain' *.m
但我也得到了
SKSC.m:195:model.qtrain = model.qtrainExtra(:,k-1);
SKSC.m:196:model.mqtrain = model.mqtrainExtra{k-1};
SKSC.m:197:model.sqtrain = model.sqtrainExtra{k-1};
如何摆脱其他人? 我只想与我的模式完全匹配。
答案 0 :(得分:3)
如果按“确切模式”表示其中只包含qtrain
的完整行,
然后使用-x
标志:
grep -nx qtrain *.m
这只会匹配包含“qtrain”的行,而不包含任何其他行。
如果用“确切模式”表示匹配“qtrain”但不匹配“blahqtrain”或“qtrainblah”,那么您可以使用-w
来匹配整个单词:
grep -nw qtrain *.m
这只会匹配输入中的这一行:
SKSC.m:195:model.qtrain = model.qtrainExtra(:,k-1);
顺便说一句,这是使用正则表达式的另一种等效方法:
grep -n '\<qtrain\>' *.m
来自man grep
:
符号
\<
和\>
分别匹配空字符串 一个词的开头和结尾。
答案 1 :(得分:1)
您也可以这样做
grep -n '\.qtrain' *.m
用“.qtrain”获取任何内容。请注意,在grepping时必须转义点
答案 2 :(得分:1)
你只想要它返回&#34; qtrain&#34;?如果是这样,您可能想要使用
grep -no qtrain *.m
如果你希望它只匹配&#34; qtrain&#34;是唯一的文字,使用
grep -n ^qtrain$ *.m