grep

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

1. grep的Regular Expression

Ref[1]

A): 匹配单字符

reg ex中基本的构建块是匹配单个字符的reg ex。大多数字符(包括数字和字母)都是匹配自己的reg ex。

B): 元字符

任何有特殊含义的元字符(metacharacter)都是被前导的反斜线(backslash, 即: \)开始标识。

C): bracket expression

bracket expression是由[]包围的字符列表。这类表达式匹配列表中的任何一个字符(注意是 只匹配一个字符)。

如果^是字符列表中的第一个字符,则该表达式匹配任意一个不在列表中的字符。

例如:[0123456789] 匹配任意一个单一数字; [a-z] 匹配任意一个小写字母。

要匹配字符']', 则需要将']'放在字符列表的第一个位置。例如: []a-z]

类似的要匹配'^'需要将'^'放在字符列表中非第一的位置。例如: [a^]

类似的要匹配'-'需要将'-'放在字符列表中的最后的位置。 例如: [a-]

D): 命名的字符类别 (named classes of characters)

[:alnum:]  [:alpha:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]

E): '.' 圆点匹配任意一个单一字符。 \w 和 [[:alnum:]] 同义, \W 和 [^[:alnum:]] 同义。

F): ^ 和 $ 分别匹配一行的开始和结尾的空字符串。例如:

$ grep ^line1 data

匹配文件data中以"line1"开头的行。

G): \< \>

The symbols \< and \> respectively match the empty string at the beginning and end of a word.

H): \b \B

The symbol \b matches the empty string at the edge of a word, and \B matches the empty string

provided it's not at the edge of a word.

I): 重复操作符 (repetition operator)

repetition operator
?

The preceding item is optional and matched at most once.

*

The preceding item will be matched zero or more times.

+

The preceding item will be matched one or more times.

{n}

The preceding item is matched exactly n times.

{n,}

The preceding item is matched n or more times.

{n,m}

The preceding item is matched at least n times, but not more than m times.

J): 匹配元字符 *

?, +, {, |, (, and ) lose their special meaning; instead use the backslashed versions \?, \+, \{, \|, \(, and \)

K): reg ex的操作: concatenation, join

Two regular expressions may be concatenated; the resulting regular expression matches any string formed

by concatenating two substrings that respectively match the concatenated subexpressions.

Two regular expressions may be joined by the infix operator |; the resulting regular expression matches

any string matching either subex- pression.

Repetition takes precedence over concatenation, which in turn takes precedence over alternation.

A whole subexpression may be enclosed in parentheses to override these precedence rules.

The backreference \n, where n is a single digit, matches the substring previously matched by the nth parenthesized

subexpression of the regu- lar expression.

例如: $ grep "line1\|line2" data

匹配包含"line1"或者"line2"的行。

2. grep的Example

[Todo]: Ref[2]


Reference

1. grep

http://unixhelp.ed.ac.uk/CGI/man-cgi?grep

2. Advanced Regular Expressions in Grep Command with 10 Examples – Part II

http://www.thegeekstuff.com/2011/01/advanced-regular-expressions-in-grep-command-with-10-examples-%E2%80%93-part-ii/

Linux.CommanlineTool.grep的更多相关文章

  1. 由一条Linux的grep命令说起

    今天在开发的时候,看到同事使用了这样的一条linux命令 grep 'class YourClass' -rwi * |grep -v svn 想到了 grep命令的,几个参数. -r 明确要求搜索子 ...

  2. Linux下grep显示前后几行信息

    Linux下grep显示前后几行信息 标准unix/linux下的grep通过下面參数控制上下文 grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行grep -B ...

  3. linux 命令grep

    linux 命令grep grep命令用来搜索文本,或从给定的文件中搜索行内包含了给定字符串或单词的文件.通常来说,grep显示匹配的行.使用grep来搜索包括一个或多个正则表达式匹配到的文本行,然后 ...

  4. Linux 命令 - grep: 正则搜索文本

    grep 搜索文本文件中与指定正则表达式匹配的行 命令格式 grep [OPTIONS] PATTERN [FILE...] 命令参数 Generic Program Information --he ...

  5. linux 用grep匹配横线

    file的内容如下: ADSFADSFSDFASDFJKJK----------------------------------------ADSFADSFSDFASDFJKJK----------- ...

  6. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  7. 12个 Linux 中 grep 命令的超级用法实例

    12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...

  8. Linux中Grep常用的15个例子【转】

    转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件 ...

  9. 【linux】linux命令grep + awk 详解

    linux命令grep  +  awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...

随机推荐

  1. 主流浏览器 Cookie 的大小

    目前测试的两种浏览器:Chrome 和 IE . 环境:IIS 7.5 只创建了站点,未做任何配置. Chrome : v36.0.1985.143 m 单个 Cookie 的长度为 4069 个字符 ...

  2. QuickSand图片点击后分裂成几份消失效果《IT蓝豹》

    QuickSand图片点击后分裂成几份消失效果 QuickSand图片点击后分裂成几份消失效果,适合做图片退出和剪切效果.同时也可以学习android动画. demo中都封装好几个功能类,主要动画实现 ...

  3. spring boot 的服务监控

  4. pring Boot 与Spring Cloud版本对应

    Spring Boot Spring Cloud 1.2.x Angel版本 1.3.x Brixton版本 1.4.x Camden版本 1.5.x Dalston版本.Edgware版本 2.0. ...

  5. linux下安装zabbix服务器

    1.lnmp环境安装(linux.nginx.mysql.php) 2.安装php所需模块以及其他模块 yum install -y php-bcmath yum install -y php-mbs ...

  6. ORA-01578 ORACLE data block corrupted (file # 29, block # 2889087)

    BW数据库后台报错如下:F:\oracle\SBP\saptrace\diag\rdbms\sbp\sbp\trace ORA-01578: ORACLE data block corrupted ( ...

  7. 【OpenGL】glsl、glew、glfw

    glsl: OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic Pr ...

  8. 【pyspider】关于匹配html的数据

    今天刚刚接触pyspider,在调试的时候注意匹配数据可以这样写: <div class="download-wp">         <a data-app-i ...

  9. 纯css3棋盘图案背景以及45度斜纹背景

    css代码  .stripes {     height: 250px;     width: 375px;     float: left;          margin: 10px;      ...

  10. 顺时针打印矩阵(python)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...