bash基础特性3(shell编程)

Linux上文本处理三剑客:

  •   grep:文本过滤工具
  •   sed:stream editor,文本编辑工具
  •   awk:文本报告生成器

 

grep

-v:显示不能够被pattern匹配到的行
-i:忽略字符大小写
-o:仅显示匹配到的字符串
-A:after,后...行
-B:before,前...行
-C:context,前后各...行
基本正则表达式元字符
    字符匹配:
        . :任意单个字符
        []:匹配指定范围内的单个字符
        [^]:匹配指定范围外的单个字符
    匹配次数:
        *:匹配前面的字符任意次:
            例如:x*y可以匹配到abxy,xay,xxxxxy,但是qwex是不可以的
        .*:任意长度的任意字符:
        \?:匹配其前面的字符0或1次:即前面的可有可无
        \+:匹配前面的字符至少1次
        \{m\}:匹配前面的字符m次
        \{m,n\}:匹配前面的字符至少m次,最多n次
        \{0,n\}:匹配前面的字符最多n次
        \{m,\}:匹配前面的字符最少m次
    位置锚定:
        ^: 行首锚定:用于模式的最左侧
        $: 行尾锚定:用于模式的最右侧
        ^PATTERN$:用于模式匹配整行
            ^$:空行
            ^[[:space:]]*$:匹配空格字符
        \<或\b:词首锚定:用于单词模式的最左侧
        \>或\b:词尾锚定:用于单词模式的最右侧
        \<PATTERN\>:匹配整个单词
    分组:
        \(\):将一个或者多个字符捆绑在一起,当做一个整体进行处理:
            \(xy\)*\(ab\):匹配xy出现任意次数并且后面跟着ab
            

练习

1.显示/proc/meminfo文件中以大小s开头的行:(要求使用两种方式)
2.显示/etc/passwd文件中不以/bin/bash结尾的行
3.显示/etc/passwd文件中ID号最大的用户名4.找出/etc/passwd中两位或者三位数
5.找出/etc/passwd文件中,至少以一个空白字符开头的且后面存非空白字符的行

 答案

1.grep -i '^s' passwd
2.grep -v "/bin/bash$" passwd
3.sort -t: -k3 -n passwd | tail -1 | cut -d: -f1
4.egrep "[0-9]{2,3}" passwd
5.egrep "^[[:space:]]{1,}[a-z]" passwd 
View Code

 

转载于:https://www.cnblogs.com/fengzi7314/p/10771927.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值