文本处理三剑客之grep详细用法--实例

grep

字符匹配

        . :匹配单个字符

        [ ]:匹配范围内的任意单个字符

匹配次数

        \?:匹配前面的字符0次或一次,意味着可有可无;

        *:匹配前面的字符0次或任意次

        .*:匹配任意长度的任意字符

        \+:匹配前面的字符1次或任意次,意味着至少一次

        \{n\}:匹配其前面的字符n次;

         \{n,m\}:匹配其前面的字符至少n次,至多m次;

         \{0,n\}:匹配前面的字符至多n次

        \{m,\}:至少m次

匹配位置

        ^:行首锚定,用于模式的最左侧;

         $:行尾锚定,用于模式的最右侧;

         ^PATTERN$:用于PATTERN来匹配整行;

         ^$:空白行;

          \< 或 \b:词首锚定,用于单词模式的左侧;

         \> 或 \b:词尾锚定,用于单词模式的右侧;

         \<PATTERN\>:匹配完整单词;

其他及特殊的posix字符

        \w:匹配字母、数字和下划线等于[A-Za-z0-9]

        \W:匹配非字母、非数字和非下划线[^A-Za-z0-9]

        \n:匹配一个换行符

        \r:匹配一个回车符

        \t:匹配一个制表符

        \s:匹配任何空白字符

        \S:匹配任何非空白字符

        \f:匹配一个换页符

        [[:alnum:]] 文字数字字符(除去符号之外,数字、字母都可以包括中文!)

        [[:alpha:]] 文字字符(字母,包括中文)

        [[:digit:]] 数字字符(阿拉伯数字)

        [[:graph:]] 非空字符(排除空格、tab键)

        [[:print:]] 非空字符(包括空格,空格认为非空,tab键不适用)

        [[:lower:]] 小写字符

        [[:upper:]] 大写字符

        [[:cntrl:]] 控制字符

        [[:punct:]] 标点,符号(包括常用符号)

        [[:space:]] 所有空白字符(新行,空格,制表符)

        [[:xdigit:]] 十六进制数(0-9,a-f,A-F)

举例说明

        (test.txt为测试文件)

        1.查找含有“name”的行

        grep "name" test.txt

        2.查找以"name"开头的行

        grep "^name" test.txt

        3.查找以大写字母开头的行

        grep ^[[:upper:]] test.txt

        4.查找包含数字的行

        grep [[:digit:]] test.txt

        5.查找带有单引号的行

        grep ".*'.*'.*" test.txt

        6.查找带有双引号的行

        grep ".*\".*\".*" test.txt

        7.搜索双引号里面带单引号的行

        grep "\".*'.*'.*\"" test.txt

        8.查找空白行,并算出多少行

        grep -c [[:space:]] test.txt

        9.查找非空白行,并算出有多少行

        grep -c [[:graph:]] test.txt        有空格也认为空

        grep -c [[:print:]] test.txt          空格不算空,tab算空

        10.查找带有标点符号的行

        grep [[:punct:]] test.txt

        11.搜索以y开头、中间肯定有字符、末尾是o的行、并显示出上下各2行的内容。

        grep -C 2 "^y.*o$" test.txt 

        12.搜索以字母g开头包含两个o以上的单词

        grep "\b^go\{2,\}" test.txt

        13.搜索精确匹配到含有day的单词的行。 

        grep "\<day\>" test.txt 

        14.搜索一个包含od的行,d字母可有可无,不限次数。

        grep "od*" test.txt 

        15.搜索一些行,该行包括某个单词,并满足一下条件:

                第一个字符可以是Y或y

                第二个字符可以是o或者没有

                第三个字符可以是任意字符

                第四个字符匹配前一个字符,0次或任意次

         grep "^[Yy]o\?.*" test.txt 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自然醒o./

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值