zoukankan      html  css  js  c++  java
  • awk、sed、grep三大shell文本处理工具之grep的应用

    1.基本格式
    grep pattern [file...]
    (1)grep 搜索字符串 [filename]
    (2)grep 正则表达式 [filename]
    在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.
    注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号

    2.grep的选项
        -c   只输出匹配行的计数
        -i    不区分大小写(用于单字符)
        -n   显示匹配的行号
        -v   显示不包含匹配文本的所有行
        -s   不显示错误信息

        -o   只输出匹配字符串
        -E   使用扩展正则表达式

     -w   字符串精确匹配

        更多的选项请查看:man grep

    例:

    [root@xx tmp]# cat e.txt |grep danny
    danny123
    danny
    danny1
    danny
    [root@xx tmp]# cat e.txt |grep -i danny
    danny123
    danny
    danny1
    Danny
    Danny213
    danny
    [root@xx tmp]# cat e.txt |grep -w danny
    danny
    danny

    3.常用grep实例

    (1)多个文件查询
        grep "sort" *.doc       #见文件名的匹配

    (2)行匹配:输出匹配行的计数
        grep -c "48" data.doc   #输出文档中含有48字符的行数

    (3)显示匹配行和行数
        grep -n "48" data.doc       #显示所有匹配48的行和行号

    (4)显示非匹配的行
        grep -vn "48" data.doc      #输出所有不包含48的行

    (5)大小写敏感
        grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

    4, 正则表达式的应用

    (1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
        grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

    (2)不匹配测试
        grep '^[^48]' data.doc      #不匹配行首是48的行

    (3)使用扩展模式匹配
        grep -E '219|216' data.doc

    5, 使用类名
    可以使用国际模式匹配的类名:
    [[:upper:]]   [A-Z]
    [[:lower:]]   [a-z]
    [[:digit:]]   [0-9]
    [[:alnum:]]   [0-9a-zA-Z]
    [[:space:]]   空格或tab
    [[:alpha:]]   [a-zA-Z]

  • 相关阅读:
    springboot maven
    基于spring http服务远程调用
    java注解
    mongdob-高可用集群
    Mongodb学习笔记--分片集群
    Mongodb学习笔记--springboot中使用mongodb
    Mongodb学习笔记--用户和权限
    Mongodb学习笔记--使用java连接操作mongodb
    mongodb学习笔记--集群配置(二)-副本集配置
    mongodb学习笔记--集群配置(一)
  • 原文地址:https://www.cnblogs.com/dannylinux/p/8183164.html
Copyright © 2011-2022 走看看