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. 吴裕雄 python深度学习与实践(4)

    import numpy,math def softmax(inMatrix): m,n = numpy.shape(inMatrix) outMatrix = numpy.mat(numpy.zer ...

  2. Docker网络及命令

    Docker常用命令 docker version #查看版本 docker search centos #搜索可用docker镜像 docker images 查看当前docker所有镜像 dock ...

  3. 学JS的心路历程-for of和for in

    我们在刚入门JS时候,说到要跑出数组的每个值肯定都是这样子: var arr = [1,2,3,4,5,6]: for(let i = 0:i < arr.length:i++){ consol ...

  4. poj1061-青蛙的约会-(贝祖定理+扩展欧几里得定理+同余定理)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:132162   Accepted: 29199 Descripti ...

  5. 关于php laravel5.1框架出现路由找不到的情况

    开启apache模块在apache配置文件LoadModule rewrite_module modules/mod_rewrite.so前面的#去掉然后修改 vim  /etc/init.d/htt ...

  6. java 基础最全网站

    http://www.runoob.com/java/java-tutorial.html

  7. Java用代码演示String类中的以下方法的用法

    用代码演示String类中的以下方法的用法 (1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true (2)char charAt(int index): 返回索引上 ...

  8. express返回html文件

    [express返回html文件] app.engine(ext, callback) 方法即可创建一个你自己的模板引擎.其中,ext 指的是文件扩展名.callback 是模板引擎的主函数,接受文件 ...

  9. CSS中的通用字体

    往往设计师在设计时一厢情愿地去思考问题,那样会带来很多潜在的麻烦.事实上你可以为网页设计任意字体,包括艺术字体.也许你的计算机中已经安装了很多字体,但是不能够保证所有的浏览者都已经安装了相同的字体,因 ...

  10. JMeter学习(十四)JMeter函数学习(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functio ...