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. C# WebBrowser控件使用教程与技巧收集

    常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(strin ...

  2. 基于JSON的级联列表实现

    html代码: <select id="provice" onChange="setCity()"> <option value=" ...

  3. Isolation-based Anomaly Detection

    Anomalies are data points that are few and different. As a result of these properties, we show that, ...

  4. SQL变量、Substring、charindex、case函数、去除重复

      isnull(aa,0)删除表数据: truncate table aaa 添加字段: ALTER TABLE table1 ADD col1 varchar(200) DEFAULT '2008 ...

  5. 搭建测试环境——针对S3C6410开发板

    (一)前言 目前市面上的开发板型号和种类很多,但目前最流行的是基于三星S3C6410 ARM11架构的开发板.国内很多厂商在S3C6410 ARM11架构的开发板的基础上进行了扩展,开发了扩展板,本博 ...

  6. 7.2.3 使用RenderTargetBitmap类生成图片

    RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实际的编程中通常会利用RenderTargetBitmap类来对U ...

  7. 第三次作业——for 语句及分支结构else-if

    1.本次学习到的知识点: (1)else-if的一般形式:if(表达式1)语句1:else if(表达式2)语句2:........else if(表达式n-1)语句n-1:else语句n: (2)遇 ...

  8. C#联机获取公网IP

    C#获取IP的方式有很多种,这里通过http://www.ipip.net/这个稳定的在线IP库的来获取公网IP. string tempip = "0.0.0.0"; WebRe ...

  9. BackTrack5-r3虚拟机安装

    ISOL INUX 3.63 Debian-2008-07-15 Copyright (C) 1994-2008 H. Peter Anvinboot:(按回车) 选择:BackTrack Text ...

  10. Teleport Ultra 下载网页修复

    1 三个基本正则替换 tppabs="h[^"]*"/\*tpa=h[^"]*/javascript:if\(confirm\('h[^"]*[Ult ...