我有一个文本文件:
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
Run Code Online (Sandbox Code Playgroud)
我想完全匹配deiauk。当我这样做时:
grep "deiauk" file.txt
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
Run Code Online (Sandbox Code Playgroud)
但我只需要这个:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Run Code Online (Sandbox Code Playgroud)
我知道有一个-w选项,但是我的字符串必须整行。
Jan*_*nis 185
尝试以下之一:
grep -w "deiauk" textfile
grep "\<deiauk\>" textfile
Run Code Online (Sandbox Code Playgroud)
        Cyr*_*rus 22
用 GNU 试试这个grep并用以下标记单词边界\b:
grep "\bdeiauk\b" file
Run Code Online (Sandbox Code Playgroud)
输出:
德约克 1611516 美国空军 765
请参阅:http : //www.regular-expressions.info/wordboundaries.html
hee*_*ayl 14
如果您grep支持-P(PCRE),您可以:
$ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt 
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Run Code Online (Sandbox Code Playgroud)
        根据您的真实数据,您可以查找后跟空格的单词:
grep 'deiauk ' file.txt 
Run Code Online (Sandbox Code Playgroud)
如果您知道它必须位于行首,请检查它:
grep '^deiauk ' file.txt 
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           553819 次  |  
        
|   最近记录:  |