正则表达式和通配符

正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串。vim、grep、awk、sed都支持正则表达式,也正是因为它们支持正则,才显得它们强大。

很多编程语言都有正则。

python的re相关正则介绍:http://www.cnblogs.com/liao-lin/p/7091866.html

grep工具

grep通用正则表达式分析程序(global research regular expression and printing)

用途:使用正则表达式搜索文本,并把匹配的行打印出来

grep用法:

grep [options] 'pattern' filename

常用选项:

  • -a 以文本文件方式搜索
  • -n 打印匹配到的行的行号
  • -i 忽略大小写匹配
  • -c 如果匹配成功,则将匹配到的行数打印出来
  • -o 只显示匹配内容
  • -q 静默模式,过滤成功与否都没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
  • -l 如果匹配成功,则只将文件名打印出来,失败则不打印,通常与-rl一起用,grep -rl 'root' /etc/
  • -An 如果匹配成功,则将匹配行及其后n行一起打印出来,after
  • -Bn 如果匹配成功,则将匹配行及其前n行一起打印出来,before
  • -Cn 如果匹配成功,则将匹配行及其前后n行一起打印出来,context
  • -f 根据文件内容进行匹配,从文件每一行获取匹配模式
  • -v 取反,反向选择,不匹配
  • -w 匹配单词(单词用分隔符来界定)
  • -E 扩展正则,等同于egrep

基础正则介绍

^       行首
$ 行尾
. 除了换行符以外的任意单个字符
? 前导字符出现零个或一个
* 前导字符出现零个或多个
+ 前导字符出现一个或多个
.* 所有字符
[] 字符组内的任一字符
[^] 对字符组内的字符匹配取反(反向匹配)
^[^] 匹配不是[]内字符开头的内容
[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头,单词一般以空格或者特殊符做分隔,连续的字符串被当做单词
\> 单词尾
abc|def abc或def
a(bc|de)f abcf或adef
x{m} x出现m次
x{m,n} x出现m次到n次
x{m,} x出现m次到无限次

示例:

输出b文件中在a文件相同的行
# grep -f a b
输出b文件中在a文件不同的行
# grep -v -f a b
去除空格sshd_config文件空行或#开头的注释行
# egrep -v "^$|^#" /etc/ssh/sshd_config
输出匹配的前五个结果
# seq 20|egrep -m 5 '[0-9]{2}'
10
11
12
13
14
统计匹配多少行
# seq 20|egrep -c '[0-9]{2}'
11
匹配/etc/passwd文件以root开头的行
# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
递归搜索/etc目录下包含192.168.内容的conf后缀文件
# grep -rl "192.168." /etc/ |grep "\.conf$"
/etc/resolv.conf
/etc/dnsmasq.conf
/etc/rsyslog.conf
/etc/security/access.conf
匹配所有IP
# egrep -r -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /etc
打印匹配结果及后三行
# seq 10 |grep 5 -A 3
5
6
7
8

grep工具及正则表达式的更多相关文章

  1. 快速掌握grep命令及正则表达式

    Linux系统自带了支持拓展正则表达式的 GNU 版本 grep 工具,所有的Linux发行版中均默认安装grep ,grep 命令被用来检索一台服务器或工作站上任何位置的文本信息,如何在 Linux ...

  2. linux中grep工具

    正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...

  3. grep工具

    全面搜索正则表达式(Global search regular expression(RE) ,GREP)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. Unix/Lin ...

  4. Linux中grep工具的使用

    Grep grep(Globel Search Regular Expression and Printing out the line)全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,是 ...

  5. 07 grep命令与正则表达式

    grep命令 首先我们知道grep命令是用来做文件内容过滤的!如果你要在文件中查找一些对应的内容,我们如何来过滤找到其中我们需要符合条件的内容呢?grep命令结合正则表达式就可以实现: grep.eg ...

  6. Linux/Unix工具与正则表达式的POSIX规范

    http://www.infoq.com/cn/news/2011/07/regular-expressions-6-POSIX 对正则表达式有基本了解的读者,一定不会陌生『\d』.『[a-z]+』之 ...

  7. grep和egrep正则表达式

    Linux上文本处理三剑客 grep :文本过滤( 模式:pattern) 工具 grep, egrep, fgrep (不支持正则表达式搜索,但搜索纯文本的数据最快) sed :stream edi ...

  8. bash基础——grep、基本正则表达式、扩展正则表达式、fgrep

    grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要 ...

  9. Linux CentOS7 VMware正则介绍、grep工具、egrep表达式

    一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式 ...

随机推荐

  1. 52e174ef38c96afbbeabe55d2ec53622 我知道这是什么

    52e174ef38c96afbbeabe55d2ec53622   我知道这是什么52e174ef38c96afbbeabe55d2ec53622   我知道这是什么52e174ef38c96afb ...

  2. [51nod1462]树据结构

    题面: 给一颗以1为根的树. 每个点有两个权值:vi, ti,一开始全部是零. Q次操作: 读入o, u, d o = 1 对u到根上所有点的vi += d  o = 2 对u到根上所有点的ti += ...

  3. 几道数位DP

    因为这几天写的几道数位DP大多都太水..而且也确实没什么好讲所以就扔到一起了. [hdu4772]Good Numbers 要求统计区间内 各位数之和能被10整除 的数的个数. 练手,f[i][j][ ...

  4. 二叉排序树BST+求树深度算法

    #include "stdio.h" #include "malloc.h" typedef struct node { int key; struct nod ...

  5. Java技术分享:如何编写servlet程序

    身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...

  6. python利用socketserver实现并发套接字功能

    本文实现利用python的socketserver这个强大的模块实现套接字的并发 目录结构如下: 测试文件请放在server_file文件夹里面 server.py #!/usr/bin/env py ...

  7. 多线程编程学习笔记——使用异步IO(一)

    接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...

  8. phpstorm(或webstorm) 打开后 一直停留在scanning files to index....,或跳出内存不够的提示框

    记得3月份做项目时就遇到过这个问题,当时解决的 ,但是忘记怎么解决的啦,所以 ,写博文是多么的重要啊. 说明: 在npm install 后,会出现Scanning files to index .. ...

  9. 2017-07-12(touch df du)

    touch 作用:修改文件时间或者创建新文件 文件三个主要的变动时间 mtime 当文件的内容发生改变的时候,就会更新这个时间 ctime 当文件的权限与属性发生改变的时候,就会更新这个时间 atim ...

  10. 通过EXPLAIN分析低效SQL的执行计划

    explain select * from film where rating>9\G; select_type 表示select的类型 SIMPLE 代表简单表,不用表连接或子查询 PRIMR ...