共计 1397 个字符,预计需要花费 4 分钟才能阅读完成。
目的:
熟练使用 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/
文章来源于网络,侵删
正文完
星哥玩云-微信公众号