grep、egrep命令用法

摘要:
正则表达式分类正则表达式根据元字符的数量和功能可以分为基本正则表达式和扩展正则表达式。而grep和egrep都是文本搜索工具,可以根据用户指定的文本模式逐行搜索目标文件,并显示匹配的行。就用法而言,grep–E相当于grep,而fgrep是一种类似于grep和grep的文本搜索工具。由于它不支持正则表达式,因此不会单独介绍。
何谓正则表达式

正则表达式,又称正规表示法、常规表示法(Regular Expression,在代码中常简写为regex、regexp或RE),是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。
正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,不表示其字面意义,而用于额外功能性描述。
 
正则表达式分类

正则表达式根据元字符的数量及功能不同又分为基本正则表达式(grep)和拓展正则表达式(egrep)。而grep和egrep同属于文本搜索工具,可根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。用法上grep –E等同于egrep,与grep和egrep相似的文本搜索工具还有fgrep,因不支持使用正则表达式,所以不再单独介绍。
 
基本正则表达式(grep)
 
语法格式:grep[option]... 'PATTERN' FILE...
 
基本正则表达式元字符:
 
1.字符匹配:
    .:任意单个字符
    [ ]:匹配指定范围内的任意单个字符
    [0-9]:匹配单个数字
    [a-z]:匹配单个小写字母
[A-Z]:匹配单个大写字母
[[:digit:]]:匹配单个数字
[[:lower:]]:匹配单个小写字母
[[:upper:]]:匹配单个大写字母
[[:space:]]:匹配单个空白字符
[[:punct:]]:匹配单个标点符号
[[:alnum:]]:匹配单个字母或数字
[[:alpha:]]:匹配单个字母(不分大小写)
[^]:匹配范围外的任意单个字符
 
  2.次数匹配:
*:任意次(前面字符出现任意次)
?:0次或1次(前面字符可有可无)
{m}: m次(前面字符出现m次)
{m,n}:至少m次,至多n次
{m,}:至少m次
{0,n}:至多n次
.*:任意长度的任意字符
 
  3.位置锚定:
^:行首锚定(写在模式最左侧)
$:行尾锚定(写在模式最右侧)
^$:空白行
<,/b:词首锚定(出现于单词左侧)
>,/b:词尾锚定(出现于单词右侧)
(注:不包含特殊字符的连续字符组成的串叫单词)
 
  4.分组
( ):如(ab)*
(分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用)
 
  5.引用
:引用前面的第n个左括号以及与之对应的右括号中的模式所匹配到的内容
 
拓展正则表达式(egrep)
    语法格式:egrep [option] 'PATTERN' FILE...
 
拓展正则表达式元字符:
1.字符匹配:
 .:任意单个字符
 [ ]:匹配范围内的任意单个字符
 [^]:匹配范围外的任意单个字符
 
2.次数匹配:
*:任意次
?: 0或1次
+:至少1次
{m}: m次
{m,n}:至少m次,至多n次
{m,}:至少m次
{0,n}:至多n次
 
3.位置锚定:
^:行首锚定
$:行尾锚定
<,:词首锚定
>,:词尾锚定
^$,^[[:space:]]*$:空白行
 
4.分组:
( ):分组
12347|:或 
 
5.引用:
     :引用前面的第n个左括号以及与之对应的右括号中的模式所匹配到的内容
 
grep及egrep命令选项

-v: 反向选取
-o:仅显示匹配的字串,而非字串所在的行
-i:ignore-case,忽略字符大小写
-A:显示之后两行
-B:显示之前两行
-C:显示上下两行
 
用法

显示/proc/meminfo文件中以大写或小写S开头的行
grep、egrep命令用法第1张
显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户
 grep、egrep命令用法第2张
显示/etc/passwd文件中其默认shell为/bin/bash的用户中ID号最大的用户
 grep、egrep命令用法第3张
找出/etc/passwd文件中的一位数或两位数
 grep、egrep命令用法第4张
显示/boot/grub/grub.conf中以至少一个空白字符开头的行
 grep、egrep命令用法第5张
显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行
 grep、egrep命令用法第6张
找出netstat -tan命令执行结果中以'LISTEN'结尾的行
 grep、egrep命令用法第7张
找出当前系统上其用户名和默认shell相同的用户
 grep、egrep命令用法第8张
显示当前系统上root或scholar用户的默认shell12
 grep、egrep命令用法第9张
找出/etc/rc.d/init.d/functions文件中某单词后跟一组小括号“()”行
 grep、egrep命令用法第10张
使用echo命令输出一个路径,而后使用grep取出其基名
 grep、egrep命令用法第11张
找出ifconfig命令结果中的1-255之间的数字

grep、egrep命令用法第12张



来自为知笔记(Wiz)



免责声明:文章转载自《grep、egrep命令用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Asp.Net运行于32/64模式下的性能差异网易 UI 自动化工具 Airtest 浅用记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

centOS目录结构详细版

摘要:linux目录结构/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/b...

Delphi数据库处理

Delphi数据库处理 第一节 BDE、ADO、InterBase和dbExpress Delphi中处理数据库主要有两种方法,也就是BDE、ADO,从Delphi 6.0开始还加入了一种dbExpress方法。另外,Delphi还提供了专门处理Borland 公司自己的数据库产品InterBase 数据库的专门的方法。 BDE(Bor...

python基础学习-字符编码

一、字符编码总结: 1、内存固定使用unicode,我们可以改变的是存入硬盘采用格式      英文+汉字-》unicode-》gbk      英文+日文-》unicode-》shift-jis      万国字符》-unicode-》utf-8 2、文本文件存取乱码问题 :      解决办法:                 编码格式应该设置成支持文...

常用 Unicode 符号列表

Unicode 中包含了各种符号,我们可以作为图标来使用。这里整理一下常用的一些符号。 一、拉丁字母补全(Latin-1 Supplement):U+0080 至 U+00FF Unicode 编号 字符描述 字符形状 HTML 编码 U+00A4 CURRENCY SIGN ¤ &curren;  U+00AB LEFT-POINT...

vi编辑器的学习使用(十五)

Vim大量的工作是通过命令行的方式来完成,这样的命令行方式对于则接触Vim新手来说也许会觉得难于操作,可是当我们习惯了这样的工作方式后,我们就不得不佩服Vim的强大功能,正是这些命令使得我们可以高效的来完成我们的工作.而在Vim当中还有一些其他的命令.命令:ascii或者是ga可以用ASCII码和八进制及十六进制打印出来.当我们编辑多字节文件时,例如说我们...

截断字符串,取指定长度字符(中英文通用)

vs2008 设计页:                                           <asp:TemplateField>                                                <ItemTemplate>                               ...