grep命令

        格式:grep [-acinv] [--color=auto] '查找字符串' filename

-a 将binary文件以text文件的

-c 计算找到 ‘查找字符串’ 的次数

-i 忽略大小写的不同,所以大小写视为相同

-n 顺便输出行号

-v 反向选择,即显示出没有 ‘查找字符串’ 内容的那一行

--color=auto 关键部分加上颜色显示

基础正则

^:行首

$:行尾

查找以0为行首:

查找以3为行尾:

. 代表一定有一个任意字符的字符

\转义字符,将特殊字符的特殊含义去掉

*重复0个到无穷多个的前一个字符(一定要切记是0到无穷多个,如果你想grep带有‘3’的行,用‘3*’是无效的,应该为‘33*’,其实grep ‘3’ = grep ‘33*’)

[list],  [abc]则或a或b或c,[0-9]则0-9范围中任意一个,同理[a-z]或[A-Z]

[^list]  取不在该范围内的字符,下面例子,grep一整行皆为非小写字母字符的行。*为0到无限多个的意思,如果有了扩展正则表达式,用+可以表达1到1个以上。

\{n,m\}  \{n,\}  \{\,m}

扩展正则表达式

一定要注意:扩展正则表达式要写为egrep

+ 与之前*相对应是一个或以上前一个字符

egrep '^[^a-z]+$' = grep '^[^a-z][^a-z]*$'

? 0个或一个前一个字符

| 或

()一组字符

()+ 多个重复组

标识字符集,例如可以用[:digit:]代替[0-9] 实例:egrep -n '^(12|2[[:digit:]][[:digit:]]|(29|30|31|32)[[:digit:]][[:digit:]])$' file*

(查找n,n=12或200<=n<=299或2900<=n<=3299)

[:alnum:] 字母和数字
[:alpha:] \a 字母
[:lower:] \l 小写字母
[:upper:] \u 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] \s 所有空格符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] \d 十进制数字
[:xdigit:] \x 十六进制数字
[:graph:] 可打印的非空白字符
[:print:] \p 可打印字符
[:punct:] 标点符号

最后,grep可以抓取多个文件中的字符,grep -n ‘正则表达式’ file1 file2

Linux grep与正则表达式的更多相关文章

  1. linux初级学习笔记十:linux grep及正则表达式!(视频序号:04_4)

    本节学习的命令:grep 本节学习的技能: grep对文本的匹配 正则表达式的使用 知识点十:grep及正则表达式(4_4) grep,egrep,fgrep: grep: 根据模式搜索文本,并将符合 ...

  2. linux grep和正则表达式

    虽然正则表达式经常都在用,但是很少能够静下心来仔细的总结一下.最近看了一个台湾人的网站叫做鸟哥Linux私房菜,关于正则表达式的描述挺详细的.在此,我进行一下总结,如果想仔细的学习正则表达式,请访问鸟 ...

  3. Linux grep 命令中的正则表达式详解

    在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式(extended regular expres ...

  4. [Linux 006]——grep和正则表达式

    在使用系统时,我们或多或少的有一些搜索.查找的需求,必须要在文本中搜索某个关键字,或者过滤出文本中某些特定的行.grep 命令就为我们提供了这样一个功能,同时,grep 还可以使用正则表达式进行匹配, ...

  5. Linux文本处理三剑客之grep及正则表达式详解

    Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...

  6. linux grep命令

    linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...

  7. linux grep命令详解

    linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...

  8. 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列

     http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...

  9. linux grep命令总结

    风生水起善战者,求之于势,不责于人,故能择人而任势. 博客园    首页    新随笔    联系    订阅    管理 posts - 791,  comments - 394,  trackba ...

随机推荐

  1. C# 动态加载程序集dll (实现接口)

    一.程序集(接口程序集):LyhInterface.Dll namespace LyhInterface { public interface ILyhInterface { void Run(); ...

  2. 怎么计算Oracle的表一条记录占用空间的大小

    如何计算Oracle的表一条记录占用空间的大小? 如何计算Oracle的表记录占用空间的大小? 是把所有字段的大小都加起来吗?varchar(256),char,number算几个字节? ------ ...

  3. 关于libsvm工具箱在64位matlab下的安装说明

    LIBSVM工具箱的安装 基本方法: 1.在网上下载LIBSVM工具箱. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.将LIBSVM工具箱所在目录添加到MA ...

  4. 第一个jemter测试脚本

    通过jmeter代理录制脚本后,会产生大量的无用的请求,尽管在代理中已经过滤了一部分图片或者CSS.JS文件. 手动查看主要的请求:这里主要关注登陆请求,要确定有效的URL请求 删除除/Login.a ...

  5. Java 下的 JSON库性能比较:JSON.simple

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它 ...

  6. Mysql 变量使用

    mysql 中可以将所查询到的数据用变量存储下来,供后面使用 语法:SELECT @变量名 := 变量值 eg: SELECT @cid:=class_id, (SELECT class_name F ...

  7. js组件之间的通信

    应用场景: 1.在刷微博的时候,滑到某个头像上,会出现一张usercard(用户名片), 微博列表区有这个usercard, 推荐列表也有这个usercard,评论区也有. 2.在网上购物时,购物车安 ...

  8. 黑马程序员_Java基础:多线程总结

    ------- android培训.java培训.期待与您交流! ---------- 一.多线程的概念 进程和线程经常会被人混淆,那是因为对它们的概念不明确.就拿我们平时使用的操作系统来说,它是多任 ...

  9. Struts2基础

    访问ServletApi (1)用ActionConten访问Api, ActionContent.getContext().getSession().put("user",&qu ...

  10. P 1080 Human Gene Functions

    大概作了一周,终于A了 类似于求最长公共子序列,稍有变形 当前序列 ch1 中字符为 a,序列 ch2 中字符为 b 则有 3 种配对方式: 1. a 与 b 2. a 与 - 3. - 与 b 动态 ...