环境准备:alias grep="grep --color"

1、grep以整行为单位进行处理,行中有的匹配显示出来

Last中取出符合root的行:grep  '查找字符串'

last|grep 'root'

2、取出没有root的行:last|grep -vn 'root'

-v:反向选择,显示出没有'root'行的数据;

-n: 输出行号;

3、取出查找到的'eth0'行和此行的前两行与后两行:dmesg|grep -n -A 2 -B 2 'eth0'

-A:after,显示按要求查出的行以及后#行

-B:before,显示按要求查出的行以及前#行

-C: 除了显示所匹配的那一列之外,并显示该列之前后的内容

dmesg:显示内核信息。

那么,各取出查找行的前后各三行呢?可以用上面的-A -B,当然,也可以使用-C来表示。

查找出'eth0'的前后各三行:dmesg |grep -n -A 3 -B 3 'eth0'或者 dmesg|grep -n -C 3 'eth0'

4、[]的使用:[]里出现的字符被查找出来,[]里面可以有多个字符,但一个[]代表一个字符。

grep -n 't[ae]st' regular_express.txt

[A-Z]:表示A到Z大写的26个英文字母中的一个;也可用[:upper:];

[a-z]:表示a到z小写的26个英文字母中的一个;也可用[:lower:];

[0-9]:表示0到9的10个数字中的一个数字;也可用[:digit:];

[:alpha:]:表示大小写英文字母;

  grep -n '[^g]oo' regular_express.txt

解释:'[^g]oo'查找oo前面没有g的字符串。第19行,也可以组成oo前面是oo,故而符合要求。

5、行首匹配用^,行尾匹配用$

grep -n '^[a-z]' regular_express.txt

匹配出行首是小写字母的行。

区别:[^](^在[]里面)表示取补集,取返。

   ^[](^在[]外)表示在行首 。

取出以.号结尾的行:grep -n '\.$' regular_express.txt

转义字符的详细情况,请自行查阅 。

6、整个单词的匹配:\bword\b或者\<word\>。其中,\b和\<表示词首锚定,\b和\>表示词尾锚定。

  显示用户lp默认的shell程序:cat /etc/passwd | grep '\blp\b'

7、不区分大小写匹配查找:

显示/proc/meminfo文件中以大小s开头的行:

cat /proc/meminfo|grep -in '^s'或者 cat /proc/meminfo|grep -e '^s' -e '^S'

8、仅显示匹配到的字符串

找出/etc/passwd中的两位或三位数的数字:cat /etc/passwd|grep -o '\b[0-9]\{2,3\}\b'

其中,-o表示仅显示匹配到的字符串。

   \{m,n\}表示前面的字符至少出现m次,至多出现n次。此处是至少出现2位数,至多出现3位数。

 9、分组的使用:

  找出/etc/passwd用户名同shell名的行:cat /etc/passwd|grep '^\(\b.*\b\):.*\1$'

其中:\(\)是分组的表示,\1是引用分组变量。

注意:\(\)是分组的使用;\{\}是前面字符出现次数的使用;[]是匹配任意一个中括号里面指定的字符

附:

egrep:

egrep = grep -E 可以使用基本的正则表达外, 还可以用扩展表达式. 注意区别.
扩展表达式:
+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.

grep的用法(CentOS7)及有关正则表达式的使用的更多相关文章

  1. 文本三剑客之grep的用法

    第1章         正则表达式 1.1    正则表达式的介绍               正则是用来过滤文件内容               为处理大量文本|字符串而定义的一套规则和方法.    ...

  2. grep的用法

    grep的用法首先创建我们练习grep命令时需要用到的demo文件demo_file. $ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN ...

  3. grep精确匹配搜索某个单词的用法 (附: grep高效用法小结))

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

  4. grep常用用法

    grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件 ...

  5. <三剑客> 老三:grep命令用法

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...

  6. grep简单用法

    grep 常用参数: -c: 打印符合要求的行数 -i :忽略大小写 -n:输出行和行号 -v:打印不符合要求的行,即反选 -A:后跟数字(有无空格都可以),例如-A2 表示打印筛选行及前2行 -B: ...

  7. linux grep的用法

    linux grep的用法<pre>[root@iZ23uewresmZ ~]# cat /home/ceshis.txtb124230 b034325 a081016 m7187998 ...

  8. Ubuntu下,grep的用法

    grep(Global search Regular Expression and Print out the line)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.U ...

  9. grep命令用法

    linux中grep命令的用法 作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  ”模 ...

随机推荐

  1. 2015最流行的Android组件、工具、框架大全(转)

    转自:2015最流行的Android组件.工具.框架大全 Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生 ...

  2. andeoid硬件解码

    Finally, I must say, finally, we get low-level media APIs in Android, the Android hardware decoding ...

  3. Unity3D研究院编辑器之脚本设置ToolBar及脚本设置顶视图

    Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条.这里的所有按钮一般情况下都得我们手动的用鼠标去点击.这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动 ...

  4. EasyDSS高性能流媒体服务器前端重构(六)- webpack-dev-server 支持手机端访问

    很多时候,前端开发的页面,不仅要在PC端测试效果, 还要在手机端测试效果. 在开发阶段, 我们以 webpack-dev-server 来启动浏览器, 打开正在开发的页面. webpack-dev-s ...

  5. 小程序WePY入门(一)

    全局安装或更新WePY命令行工具 npm install wepy-cli -g 在开发目录中生成Demo开发项目 wepy new myproject 切换至项目目录 cd myproject 开启 ...

  6. 远程访问(post 传参数) 以及IOUtils复制文件

    package com.action; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream ...

  7. winform学习

    1:http://www.cnblogs.com/yieryi/category/704334.html 系列文章 2:http://www.easyicon.net/iconsearch/login ...

  8. Linux之make的用法讲解

    在 Linux环境下使用 GNU 的 make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译.连接以至于最后的执行.不过这需要我们投入一些时间去完成一个或者多个 ...

  9. smokeping 出现的问题

    Global symbol "%Config" requires explicit package name at /usr/lib64/perl5/lib.pm line 10. ...

  10. JNDI数据源配置

    一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connec ...