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. 7月17日——高校就业信息网站功能及数据获取之python爬虫

    本周我们小组在分析上周用户需求之后,确定了网站的主要框架和功能.数据收集和存储方式,以及项目任务分配. 一.网站的主要框架和功能. 网站近期将要实现的主要功能有,先重点收集高校(华东五校)就业宣讲会的 ...

  2. c/c++面试题(8)memcopy/memmove/atoi/itoa

    1.memcpy函数的原型: void* memcpy(void* dest,cosnt void* src,size_t n); 返回值:返回dest; 功能:从源内存地址src拷贝n个字节到des ...

  3. readelf与动态库

    使用arm-linux-gcc编译的可执行文件可能会无法在开发板上执行,并提示:-/bin/sh xxx not found 解决办法: 在主机上使用readelf -d xxx 来查看该程序所需要的 ...

  4. C++类内存布局图(成员函数和成员变量分开讨论)

    一.成员函数 成员函数可以被看作是类作用域的全局函数,不在对象分配的空间里,只有虚函数才会在类对象里有一个指针,存放虚函数的地址等相关信息. 成员函数的地址,编译期就已确定,并静态绑定或动态的绑定在对 ...

  5. xlwt写入中文操作不成功,提示UnicodeDecodeError: ascii codec can't decode byte ...

    打开xlwt包里的Workbook.py文件,修改Workbook类的__init__方法 将 def __init__(self, encoding='ascii', style_compressi ...

  6. 初接触BurpLoader工具

    初接触burp工具 菜鸟一枚,现在在接触一段时间测试,我在测试功能性的时候,想着网站被黑案例那么多,我是不是也应该弄弄安全性测试了,所以就有了下边的第一次接触BurpLoader工具来测试手机的app ...

  7. D3的参考样例

    官网进去就可以看到很多样例了.但是最喜欢的是mbostock的http://bl.ocks.org 然后其它的也有一些: 看上去很酷--http://www.visualcinnamon.com/po ...

  8. SE homework2

    1. (1) Fault: for循环语句中的条件表达式i > 0,不能检查到数组的第一个元素,应该为 i >= 0 . (2) test:x=[]:y=3 Expected = -1 A ...

  9. php正则,删除字符串中的中英文标点符号

    原理很简单,正则查找字符串,然后替换 英文标点符号,正则中有专用的模式来匹配.中文则需要一一列举 代码: <?php $str = "!@#$%^&*(中'文::﹑•中'文中' ...

  10. wdcp的安装方法与常见问题

    wdcp(WDlinux Control Panel)是一套用PHP开发的Linux服务器管理系统,通过面板来操作可以彻底放弃用ssh 命令来操作的繁琐,让Linux服务器系统变得更容易使用,可以在线 ...