文本处理三剑客之grep

grep命令基本用法

1、grep正则表达式(对文本行进行搜索过滤)

格式:grep [option] PATTERN [FILE...]
option:
        -i:忽略大小写
        -v:取反,显示未被匹配到的pattern
        -n:显示匹配的行号
        -c:统计匹配的行数
        -o: 只显示匹配到的pattern
        -q: 静默,不予显示
        -A#:after,匹配到的行再向后显示#行
        -B#:before,匹配到的行再向前显示#行
        -C#:context,向前向后各显示#行
        -E :等同于egrep(扩展的正则表达式)

2、正则表达式元字符

字符匹配
.:任意单个字符
[]:匹配[]以内的任意单个字符
[^]:匹配[]以外的任意单个字符
[:digit:]:十进制数字
[:upper:]:大写字母
[:lower:]:小写字母
[:space:]:空格
[:alnum:]:字母及数字
[:alpha:]:大小写字母
eg:
[root@Centos6 ~]#grep r..t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@Centos6 ~]#grep r[a-z]t /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[root@Centos6 ~]#grep r[^0-9][a-z]t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
次数匹配
*:前面字符任意次
\?:前面字符0或1次
.*:任意字符任意次
\+:至少一次
\{m,n\}:大于m小于n次
*:前面字符任意次
[root@Centos6 ~]#grep ro*t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
\?:前面字符0或1次
[root@Centos6 ~]#grep "ro\?" /etc/passwd
root:x:0:0:root:/root:/bin/bash
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
.*:任意字符任意次
[root@Centos6 ~]#grep ro.*t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
\+:至少一次
[root@Centos6 ~]#grep "ro\+" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
\{m,n\}:大于m小于n次
[root@Centos6 ~]#grep "ro\{1,5\}" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin
rooooot:x:1001:1001::/home/rooooot:/bin/bash
rooot:x:1002:1002::/home/rooot:/bin/bash
位置锚定
对于行来说
^:行首锚定
$:行尾锚定
^$:空行
^ $:空格
对于词来说
\<,\b:词首锚定
\>,\b:词尾锚定
[root@Centos6 ~]#grep "^root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@Centos6 ~]#grep "bash$" /etc/passwd
root:x:0:0:root:/root:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
ymd:x:500:500:ymd:/home/ymd:/bin/bash
[root@Centos6 ~]#grep "\<bin\>" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
ymd:x:500:500:ymd:/home/ymd:/bin/bash
分组
\(\):将一个或多个字符作为一个整体,进行处理。
后向引用:引用前面分组括号中所匹配到的内容
\1,\2 ···
eg:
grep "\(string1\+\(string2\)*\)"
\1:string1\+\(string2\)*
\2:string2

扩展的正则表达式(egrep)

egrep等同于grep -E 其选项及参数大致与grep相同

字符匹配
.:任意单个字符
[]:匹配[]以内的任意单个字符
[^]:匹配[]以外的任意单个字符
次数匹配
*:前面字符任意次
?:前面字符0或1次
.*:任意字符任意次
+:至少一次
{m,n}:大于m小于n次

3、利用所学知识如何在生产环境中实现对磁盘最大使用空间的监控

在实际的生产环境中我们需要实时的查看及监控磁盘空间情况防止因磁盘空间不足导致服务器崩溃
因此我们需要查看磁盘利用率是否超过限制值。
此为利用现在所学的命令完成查看磁盘已使用的空间情况
[root@Centos6 ~]#df -h |grep "^/dev/sda"|tr -s " " | cut -d " " -f5|sort -nr|head -n1
10%

未完待续。。。

原创文章,作者:M25_ymd,如若转载,请注明出处:http://www.178linux.com/81774

(0)
M25_ymdM25_ymd
上一篇 2017-07-18 20:04
下一篇 2017-07-19 20:43

相关推荐

  • Linux终端类型

    希望可以通过本文让网友们对linux的终端类型有一个清晰的认识!

    Linux干货 2016-10-14
  • yum前端软件包管理器

    yum是什么     Yum (Yellow dog Updater, Modified) 由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器。能够从指定的服务器自动下载…

    Linux干货 2015-05-13
  • 进程及任务管理

    进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合     进程ID(Process ID,PID)号码被用来标记各个进程     UID、GID、和SELi…

    Linux干货 2016-09-09
  • Linux破解root口令

    Centos5、6版本破解口令方法 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按a键 3 在行尾输入 1(或s或S或single)— 按回车键 4 使用passwd命令修改口令即可   Centos7版本破解口令方法 方法1 1 启动系统 2 在操作系统选择菜单界面选中要启动的内核 — 按e键…

    Linux干货 2018-01-08
  • first

    计算机可分为硬件(CPU ,存储器 ,输入设备 ,输出设备),软件(操作系统 ) 两大部份; CPU:Central Processing Unit 中央处理器 ,内部由运算器,控制器,寄存器,缓存器组成 ; 存储器 :(RAM:Random Access Memory 随机存储器)进行数据 暂存,断电后其内信息会丢失,如内存 ;(ROM:Read Only…

    Linux干货 2016-12-05
  • rsyslog日志服务

    一、知识整理: 1、日志服务rsyslogd新特点:     多线程;     基于SSL/TLS/UDP/TCP/RELP网络协议传输日志信息;     强大的过滤器,实现过滤日志信息中任何部分的内容;   &nbsp…

    Linux干货 2016-10-24