grep

grep
    grep一般格式为:

    grep [选项]基本正则表达式[文件]

    基本正则表达式可为字符串。


grep常用选项:
    -c    # 只输出匹配行的计数

    -i    # 不区分大小写

    -h    # 查询多文件时不显示文件名

    -l    # 查询多文件时只输出包含匹配字符的文件名

    -n    # 显示匹配行及行号

    -s    # 不显示不存在或无匹配文本的错误信息

    -v    # 反向查找

    -e    # 使用正则表达式

    -w    # 精确匹配

    -o    # 查询所有匹配字段
    -P    # 使用perl正则表达式
    -A3   # 打印匹配行和下三行
    -B3   # 打印匹配行和上三行
    -C3   # 打印匹配行和上下三行


grep使用例子:


    匹配IP地址:

    ifconfig |grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'       

   

    英文精确匹配:

    48      Dec  3BC1997    LPSX  68.00 LVX2A 138
    483     Sept 5AP1996    USP   65.00 LVX2C 189
    47      Oct  3ZL1998    LPSX  43.00 KVM9D 512
    219     dec  2CC1999    CAD   23.00 PLV2C 68
    484     nov  7PL1996    CAD   49.00 PLV2C 234
    483     may  5PA1998    USP   37.00 KVM9D 644
    216     sept 3ZL1998    USP   86.00 KVM9E 234

     

    grep  -w "48"   test.txt    #-w 匹配单词48
    grep  "\<48\>"  test.txt    #符号\< 和 \> 分别匹配字符串的开头和结尾

   

    中文精确匹配:

    测试
    测试:我的博客

    测试:我的博客(上)
    测试:我的博客(中)
    测试:我的博客(下)


    精确匹配:测试   

    grep  "^测试$" test.txt


    精确匹配:测试:我的博客

    grep  "测试:我的博客$" test.txt

    grep用于if判断:
    if echo abc | grep "a"  > /dev/null 2>&1
    then
         echo "abc"
    else
          echo "null"
    fi

你可能感兴趣的:(grep)