转:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

Grep 命令 用法大全

1、 参数: 
-I :忽略大小写 
-c :打印匹配的行数 
-l :从多个文件中查找包含匹配项 
-v :查找不包含匹配项的行 
-n:打印包含匹配项的行和行标

2、RE(正则表达式) 
\ 忽略正则表达式中特殊字符的原有含义 
^ 匹配正则表达式的开始行 
$ 匹配正则表达式的结束行 
\< 从匹配正则表达式的行开始 
\> 到匹配正则表达式的行结束 
[ ] 单个字符;如[A] 即A符合要求 
[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 
. 所有的单个字符 
* 所有字符,长度可以为0 


基本格式
grep pattern [file...]
(1)grep 搜索字符串 [filename]
(2)grep 正则表达式 [filename]
在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.
注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号

2,grep的选项
    -c 只输出匹配行的计数
    -i 不区分大小写(用于单字符)
    -n 显示匹配的行号
    -v 不显示不包含匹配文本的所以有行
    -s 不显示错误信息
    -E 使用扩展正则表达式
    更多的选项请查看:man grep

3,常用grep实例

(1)多个文件查询
    grep "sort" *.doc       #见文件名的匹配

(2)行匹配:输出匹配行的计数
    grep -c "48" data.doc   #输出文档中含有48字符的行数

(3)显示匹配行和行数
    grep -n "48" data.doc       #显示所有匹配48的行和行号

(4)显示非匹配的行
    grep -vn "48" data.doc      #输出所有不包含48的行

(4)显示非匹配的行
    grep -vn "48" data.doc      #输出所有不包含48的行

(5)大小写敏感
    grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

4, 正则表达式的应用

(1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
    grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

(2)不匹配测试
    grep '^[^48]' data.doc      #不匹配行首是48的行

(3)使用扩展模式匹配
    grep -E '219|216' data.doc

(4) ...
    这需要在实践中不断应用和总结,熟练掌握正则表达式。

5, 使用类名
可以使用国际模式匹配的类名:
[[:upper:]]   [A-Z]
[[:lower:]]   [a-z]
[[:digit:]]   [0-9]
[[:alnum:]]   [0-9a-zA-Z]
[[:space:]]   空格或tab
[[:alpha:]]   [a-zA-Z]

(1)使用
    grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

举例:

# grep 'the' size.txt 
the test file 
their are files

# grep '\<the' size.txt 
the test file 
their are files

# grep 'the\>' size.txt 
the test file

# grep '\<the\>' size.txt 
the test file

# grep '\<[Tt]he\>' size.txt 
the test file


自己的实践:

显示行内容和行号:

$ grep -n "^夺宝" 1.word    
16:夺宝记
1219:夺宝计上计
2220:夺宝
4000:夺宝幸运星

在当前文件夹显示已.log结尾的所有文件:

$ grep -L *.log   
10.log
11.log
12.log
22.log
23.log
24.log
2.log
3.log

linux grep --我最喜欢的命令~~的更多相关文章

  1. linux grep命令

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

  2. linux grep 命令

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

  3. linux grep命令详解

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

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

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

  5. linux grep、find 命令详解

    grep1.作用grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权 ...

  6. linux grep命令总结

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

  7. linux grep命令详解(转)

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

  8. 【转】linux grep命令详解

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

  9. Linux grep 命令详解

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

随机推荐

  1. myeclipse激活后server不能用问题

    一般是由于激活失败造成的,这种问题就卸了重新安装吧,目前还没有找到合理的方法解决,这个还真的看哥们的运气了,我是装了不下5遍才激活成功的,一般情况下,在激活的时候 出现下图的情况,Usercode写好 ...

  2. LeetCode 刷题笔记 155. 最小栈(Min Stack)

    tag: 栈(stack) 题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素 ...

  3. IEEE1588 verision 2 报文介绍

    PTP 报文 PTP verision 2 报文是由 报头 / header,主体 / body 和 报尾 / suffix 组成,报尾长度可能为 0 ; PTP verision 2 报文在 ver ...

  4. Flink架构分析之资源分配

    Task Slot     Flink中每个真正执行任务的TaskManager都是一个JVM进程,其在多线程环境中执行一个或者多个子任务.为了控制一个JVM同时能运行的任务数量,flink引入了ta ...

  5. Hyperledger Fabric 1.2 --- Chaincode Operator 解读和测试(二)

    本文接上一节是测试部分 搭建一个模拟测试环境 作者将fabric release1.2工程中的 example-e2e进行了改造来进行本次实验: (1)首先我们将examples/e2e_cli/sc ...

  6. 【Docker】第一篇 Docker的初始化安装部署

    一.Docker基础 Dacker倡导的理念:一个容器一个进程 Docker的版本了解: Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人 ...

  7. Mac下基于testrpc和truffle的以太坊智能合约开发环境搭建

    原文地址:石匠的blog truffle是一个基于Javascript开发的一套智能合约开发框架,使用Solidity语言编写合约.truffle有一套自动的项目构建机制,集成了开发,测试和部署的各个 ...

  8. linux递归查找文件内容并替换

    sed -i 's/原字符串/替换后字符串/g' `grep '搜索关键字' -rl /data/目标目录/ --include "*.html"` 上面是递归查找目录中所有的HT ...

  9. “Hello World!“”团队第七周召开的第二次会议

    今天是我们团队“Hello World!”团队第七周召开的第二次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码 一 ...

  10. spring冲刺第二天

    昨天查找了安卓开发的相关资料以及炸弹人游戏的资料. 由于今天课程比较多,只在晚上将安卓开发环境配置完成. 在安装软件时环境配置出现了问题,不过问过同学后成功解决.