我有一个文本文件:
deiauk 1611516 afsdf 765
minkra 18415151 asdsf 4152
linkra sfsfdsfs sdfss 4555
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
deiauk 1611516 afsdf ddfgfgd
luktol1 4545 4 9
luktol 1
我想完全匹配deiauk
。当我这样做时:
grep "deiauk" file.txt
我得到这个结果:
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
但我只需要这个:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
我知道有一个-w
选项,但是我的字符串必须处理整行。
答案1
尝试以下之一:
grep -w "deiauk" textfile
grep "\<deiauk\>" textfile
答案2
使用 GNU 尝试此操作grep
并使用 标记单词边界\b
:
grep "\bdeiauk\b" file
输出:
德奥克 1611516 afsdf 765
答案3
如果您grep
支持-P
(PCRE),您可以这样做:
$ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
答案4
我发现-x
对我有用。
$ grep -inx -d skip 'favicon.ico' *
test.txt:1:favicon.ico
查询手册
-x, --line-regexp
Select only those matches that exactly match the whole line. For a regular expression pattern, this is like
parenthesizing the pattern and then surrounding it with ^ and $.