目的

熟练使用grep和正则表达式的应用。

grep命令功能:显示模式匹配的行;
正则表达式:英语为Regular Expression,在代码中常简写为regex、regexp或RE,正则表达式是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

前提

可用的centos7系统,连接网络。

命令介绍

1、grep命令:根据指定的匹配模式对文本内容进行搜索

【例1】查找/etc/passwd文件里包含root字符串的行

[root@Magedu ~]# grep root /etc/passwd

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

operator:x:11:0:operator:/root:/sbin/nologin

【例2】查找2.sh文件里显示不包含111字符串的行

[root@Magedu ~]# cat 2.sh 

this is 111 line

this is 222 line

this is 333 line

this is 444 line

this is 555 line

[root@Magedu ~]# grep -v 111 2.sh 

this is 222 line

this is 333 line

this is 444 line

this is 555 line

【例3】显示/etc/passwd文件中以bash结尾的行

[root@Magedu ~]# grep  'bash$' /etc/passwd

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

lsj:x:1000:1000:lsj:/home/lsj:/bin/bash

linux:x:1004:1004::/home/linux:/bin/bash

liubei:x:1005:1005::/home/liubei:/bin/bash

zhangfei:x:1006:1006::/home/zhangfei:/bin/bash

guanyu:x:1007:1007::/home/guanyu:/bin/bash

【例4】找出“ldd /usr/bin/cat”命令的结果中的文件路径

[root@Magedu ~]# ldd /usr/bin/cat | grep -o '/[^[:space:]]\+'

/lib64/libc.so.6

/lib64/ld-linux-x86-64.so.2

【例5】找出ifconfig命令结果中所有IPv4地址

[root@Magedu ~]# ifconfig ens33|grep -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}"

172.18.118.155

255.255.0.0

172.18.255.255

【例6】将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前面

]# echo welcome to  magedu linux|grep -o "."|sort|uniq -c|sort -nr

      3 e

      3  

      2 u

      2 o

      2 m

      2 l

      1 x

      1 w

      1 t

      1 n

      1 i

      1 g

      1 d

      1 c

      1 a

2、egrep命令:同grep命令,但支持扩展的正则表达式

【例7】使用egrep取出/etc/rc.d/init.d/functions路径的目录名

[root@Magedu ~]# echo /etc/rc.d/init.d/functions |egrep -o "^[/].*/"

/etc/rc.d/init.d/

文章来源于网络,侵删