小白入门之十二:grep命令与正则表达式
目的:
熟练使用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/
文章来源于网络,侵删