grep(Globally search a Regular Expression and Print), 全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。

grep选项:

grep  [OPTIONS] PATTERN  [FILE...]

grep  [OPTIONS] [-e PATTERN | -f FILE]  [FILE...]

grep常用参数

--color:将关键字部分使用颜色显示

  1. [root@node1 ~]# alias cgrep='grep--color=auto'

-v:反向匹配,显示不能被模式匹配到的行

-o:仅匹配被模式匹配到的字串,非整行

-i:不区分大小写

-E:支持扩展

-n:显示行号

-A:后面可加数字,为after的意思,除了列出该行外,后续的 n 行也列出來;

-B:后面可加数字,为bfter的意思,除了列出该行外,后续的 n 行也列出來;

-C:前后各显示一行

grep正则表达式

. (小数点):任意单个字符

[]:指定范围内的任意单个字符

所有数字:      [0-9],[[:digit:]]

所有小写字母:  [a-z],[[:lower:]]

所有大写字母:  [A-Z],[[:upper:]]

所有字母:      [[:alpha:]]

所有标点符号:  [[:punct:]]

空格:          [[:space:]]

[^]指定范围外的任意单个字符

次数匹配:用来指定匹配前面字符的次数

*(星号):表示重复前一个字符任意次

.*(点星号):表示匹配任意长度的任意字符

\:   表示前一个字符出现0次或者1次

\{m\}: 表示匹配前一个字符m次

\{m,n\}:   表示匹配前一个字符至少m次,最多n次

\{m,\}:    表示匹配前一个字符至少m次

\{0,n\}:   表示匹配最多n次

位置锚定:指定字符出现的位置

^:锚定行首

$:锚定行位

\<:锚定词首

\>:锚定词尾

分组:

\(ab\)*xy

引用:

\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容,意思是说前面出现一次,在\1这也要出现一次

grep练习

1、     显示/proc/meminfo文件中的以大小写s的开头的行

1
2
3
4
[root@node1 ~]# grep -i '^s' /proc/meminfo 
SwapCached:            0 kB
SwapTotal:       2031612 kB
SwapFree:        2031612 kB

2、     取出默认shell为非bash的用户

1
[root@node1 ~]# grep -v "bash$" /etc/passwd |cut -d: -f1

3、     取出默认shell为bash的且其ID号最大的用户

1
[root@node1 ~]# grep "bash$" /etc/passwd |cut -d: -f1|sort -n -t: -k3|tail -1

4、     显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行

1
[root@node1 ~]# grep "^#[[:space:]]\{1,\}[^[:space:]]\{1,\}" /etc/rc.d/rc.sysinit

5、     显示/boot/grub/grub.conf中至少有一个空白字符的行

1
[root@node1 ~]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf

6、     查出/etc/passwd中一位数或两位数

1
[root@node1 ~]# grep --color=auto "\<[0-9]\{1,2\}\>" /etc/passwd

7、     找出ifconfig命令结果中的1到255之间的整数

1
[root@node1 ~]# ifconfig |grep -E --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

8、     添加用户bash和testbash,而后找出当前系统上于其他用户名和默认shell相同的用户

1
[root@node1 ~]# grep “^\([[:alnum:]]\{1,\}\)\>.*\1$” /etc/passwd

9、   找出netstat-tan命令执行的结果中以“LISTEN”或“ESTABLISHEN”结尾的行

1
netstat -tan | grep -E "(LISTEN|ESTABLISHED)[[:space:]]*"

来自为知笔记(Wiz)

grep命令学习的更多相关文章

  1. Linux中grep命令学习

    1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小 ...

  2. Linux输入输出重定向和文件查找值grep命令

    Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...

  3. grep命令输出显示高亮字

    grep命令执行后,终端上输出显示颜色可以加"--color=auto"的参数. 另外的两个办法是: 1.设置环境变量: export GREP_OPTIONS="--c ...

  4. Linux学习历程——Centos 7 grep命令

    一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...

  5. Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)

     1.文件搜索命令:locate [文件名]    在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少    例子:locate test.txt,就会显示文件名包含 test.txt的所 ...

  6. linux命令学习(1):grep 命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  7. Linux命令学习-grep

    1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...

  8. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  9. shell脚本学习指南-grep文本搜索命令-学习(3)

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...

随机推荐

  1. JavaScript中作用域和作用域链解析

    学习js,肯定要学习作用域,js作用域和其他的主流语言的作用域还存在很大的区别. 一.js没有块级作用域. js没有块级作用域,就像这样: if(){ : console.log(a) //输出100 ...

  2. RHEL6 --部署phpMyAdmin与论坛系统

    一.rpm安装LAMP平台部署phpMyAdmin 二.搭建wordpress个人博客系统 三.搭建论坛系统 一.rpm安装LAMP平台及部署phpMyAdmin 1.phpMyAdmin简介及获取方 ...

  3. [windows操作系统]目录和文件相关操作

    1.导出目录的树形结构到文本文件 tree /F d:\dir1 > d:\tree.txt 就是将d:\dir1的目录结构以树状形式输出报告到文件tree.txt中. 效果是这样的:

  4. MVC 支持同名路由,不同命名空间

    有时候我们会碰到两个项目合在一起,那么必然会碰到两个同名的controller,其实MVC在注册路由,添加Route的时候可以指定当前规则解析那个命名空间下的所有Controller. 注:Contr ...

  5. js和jquery获取图片真实的宽度和高度

    1.什么时候需要获取图片真实的宽度和高度 在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式! 另外一种就是在手机页面上,在新闻页插入的图片往 ...

  6. IIS7+windows 64位配置注意事项

    问题和解决办法 1  如果网站为Asp:再asp中注意启用父路径 2  操作必须使用一个可更新的查询:给用户iis_iusrs 一个完全控制的权限 3  Windows(64位IIS)未在本地计算机上 ...

  7. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

  8. 样式PC和手机页面

    /*媒体查询--当页面大于1200px时*/ @media (min-width: 1200px) { } /*在922和1199像素之间的屏幕里,中等屏幕*/ @media (min-width: ...

  9. Linux 路线 推荐

    1.<Linux程序设计>- 靠它来入门,然后装一个linux体系,练习shell(party)和linuxC,把基础打牢: 2. <深入理解Linux内核>和<Linu ...

  10. S2SH三大框架整合(配置及思想)

    花了一下午,终于将struts2.18+hibernate3.5.6+spring2.5.5进行整合,完成功能:在Oracle数据库的TCourse表中插入一条数据. Ⅰ,整合流程:web启动———— ...