• grep练习


    1.查找特定字符串

    [root@server3 mnt]# cat passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    rooot

    rooooot

    Root

    ROOOT

    roooooot

    test

    tes0t

    adm:x:3:4:adm:/var/adm:/sbin/nologin

     

    [root@server3 mnt]# grep -n 'root' passwd

    1:root:x:0:0:root:/root:/bin/bash

     

     

    2.反向选择

    [root@server3 mnt]# grep -nv 'root' passwd

    2:bin:x:1:1:bin:/bin:/sbin/nologin

    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

    4:rooot

    5:rooooot

    6:Root

    7:ROOOT

    8:roooooot

    9:test

    10:tes0t

    11:adm:x:3:4:adm:/var/adm:/sbin/nologin

     

    3.忽略大小写

    [root@server3 mnt]# grep -ni 'root' passwd

    1:root:x:0:0:root:/root:/bin/bash

    6:Root

     

    4.利用[]查找特定字符

     

    [root@server3 mnt]# grep -n '[rR]oot' passwd

    1:root:x:0:0:root:/root:/bin/bash

    6:Root

     

    5.查找特定的字符串

    [root@server3 mnt]# grep -n 'oo' passwd

    1:root:x:0:0:root:/root:/bin/bash

    4:rooot

    5:rooooot

    6:Root

    8:roooooot

      去掉oo前面的r

    [root@server3 mnt]# grep -n '[^r]oo' passwd

    4:rooot

    5:rooooot

    6:Root

    8:roooooot

    此时会有疑问,为什么r并没有全部被过滤掉呢?因为在4,5,7行之中,oo的前面也可呢个时o,例r(ooo)t。

     

    6.让oo前面不再有小写字符

     

    [root@server3 mnt]# grep -n '[^a-z]oo' passwd

    6:Root

    也可一以用

    [root@server3 mnt]# grep -n '[^[:lower:]]oo' passwd

    6:Root

     

    7.过滤出以bin开头的

    [root@server3 mnt]# grep -n '^bin' passwd

    2:bin:x:1:1:bin:/bin:/sbin/nologin

     

    8.过滤出开头是小写字符的行数

    [root@server3 mnt]# grep -n '^[a-z]' passwd

    1:root:x:0:0:root:/root:/bin/bash

    2:bin:x:1:1:bin:/bin:/sbin/nologin

    3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

    4:rooot

    5:rooooot

    8:roooooot

    9:test

    10:tes0t

    11:adm:x:3:4:adm:/var/adm:/sbin/nologin

    也可以用这种方式替换

    grep -n '^[[:lower:]]' passwd

     

    9.过滤出开头不是英文字母的

     

    [root@server3 mnt]# grep -n '^[^[a-zA-Z]]' passwd

     

    10.找出行尾结束时为小数点(.)的那一行

    [root@server3 mnt]# vim passwd       #编辑文件,加几个小数点

    [root@server3 mnt]# cat passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    rooot

    rooooot

    Root

    ROOOT

    roooooot.

    test

    tes0t.

    adm:x:3:4:adm:/var/adm:/sbin/nologin.

     

    [root@server3 mnt]# grep  -n '.$' passwd

    8:roooooot.

    10:tes0t.

    11:adm:x:3:4:adm:/var/adm:/sbin/nologin.

     

     

     

    11.找出空白行

    [root@server3 mnt]# vim passwd

    [root@server3 mnt]# grep -n '^$' passwd

    10:

    11:

     

     

    12.找出r??t的字符串

    [root@server3 mnt]# grep  -n 'r..t' passwd

    1:root:x:0:0:root:/root:/bin/bash

     

    13.找出至少含有两个oo以上的字符串

    [root@server3 mnt]# grep  -n 'ooo*' passwd

    1:root:x:0:0:root:/root:/bin/bash

    4:rooot

    5:rooooot

    6:Root

    8:roooooot.

     

    14.找出开头为r,结尾为t,中间至少有一个o的字符串

    [root@server3 mnt]# grep  -n 'ro*t'  passwd

    1:root:x:0:0:root:/root:/bin/bash

    4:rooot

    5:rooooot

    8:roooooot.

     

    15.用.和*结合实验

    [root@server3 mnt]# grep  -n 'r.*t'  passwd

    1:root:x:0:0:root:/root:/bin/bash

    4:rooot

    5:rooooot

    8:roooooot.

     

    16.找到2-5个o的字符串

    [root@server3 mnt]# grep  -n 'ro{2,5}t' passwd

    1:root:x:0:0:root:/root:/bin/bash

    4:rooot

    5:rooooot

     

    17.找到3个o以上的字符串

    [root@server3 mnt]# grep -n 'ro{3,}' passwd

    4:rooot

    5:rooooot

    8:roooooot.

     

    18.找到自己ip地址的行

    [root@server3 mnt]# ip addr | grep -n 'eth0$'

    9:    inet 172.25.8.3/24 brd 172.25.8.255 scope global eth0

     

     

  • 相关阅读:
    8 网站用户密码保存
    10 XSRF和XSS
    评分预测
    社会化推荐
    借助上下文信息
    UGC
    冷启动
    Git秘籍:在 Git 中进行版本回退
    Google在三大系统上停止对Chrome Apps的支持
    Windows 的 AD 域寄生于 Linux 机器
  • 原文地址:https://www.cnblogs.com/zhengyipengyou/p/10284428.html
Copyright © 2020-2023  润新知