Grepping for exact words with UNIX

后端 未结 2 387
野性不改
野性不改 2020-12-03 11:32

I want to search Exact word pattern in Unix. Example: Log.txt file contains following text:

aaa
bbb
cccaaa   ---> this should not be counted          


        
相关标签:
2条回答
  • 2020-12-03 12:11

    Use whole word option:

    grep -c  -w aaa $EAT_Setup_BJ3/Log.txt
    

    From the grep manual:

    -w, --word-regexp

    Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character.

    As noted in the comment -w is a GNU extension. With a non GNU grep you can use the word boundaries:

    grep -c "\<aaa\>" $EAT_Setup_BJ3/Log.txt
    
    0 讨论(0)
  • 2020-12-03 12:18

    Word boundary matching is an extension to the standard POSIX grep utility. It might be available or not. If you want to search for words portably, I suggest you look into perl instead, where you would use

    perl -ne 'print if /\baaa\b/' $EAT_Setup_BJ3/Log.txt
    
    0 讨论(0)
提交回复
热议问题