grep "match_text" file1 file2 file3 ...                        #grep可以对多个文件进行过滤
--color    选项可以在输出结果中用颜色显示出所匹配的部分
-E            选项后面可接正则表达式
-v            结果中不显示匹配的到行
-i             匹配时忽略大小写
-c            统计文件或者文本中包含匹配字符串的行数,注意在单行中多次匹配的只统计为一行
-n            结果中显示行号
-b            显示匹配字符所在行的字符或字节偏移,注意偏移计数从0开始,如
                echo "gnu is not unix" | grep -b -o "not"的结果为“7:not" 表示not在行中偏移为7。
-o            选项可以在结果中只输出匹配的部分。-b和-o选项经常配合使用
-e            选项可以匹配多个样式,如 grep -e "text1" -e "text2" file.txt表示在file.txt文件中找到含有text1和text2字符的行
-l             选项可在多个文件过滤时列出含有匹配字符的文件名
 
 
技巧:
1、递归搜索文件: grep "text" . -R -n在当前目录下递归搜索含有"text"字符的所有文件并显示text在文件中所处行号。
2、常用的样式可以做成文本,然后用-f选项对样式文本中逐一匹配,比如样式文本style.txt内容如下:
[root@CentOS-6 testdir]# cat style.txt
[1-9][0-9]{1,2}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} #正则表达式,用来匹配IP地址
    要匹配的文件test内容如下:
[root@CentOS-6 testdir]# cat test
max
maxtrix
010-12345678 IPADDR: 192.168.0.1
0.0.0.0      

    则可以使用 grep -Ef style.txt test命令来寻找含有IP地址的行
[root@CentOS-6 testdir]# grep -Ef style.txt test
IPADDR: 192.168.0.1
3、在grep搜索中包含或排除文件:
        grep "main()" . -r --include *.{c,cpp}            #在目录中递归搜索所有的.c和.cpp文件
        grep "main()" . -r --exclude "README"       #在搜索中排除所有的README文件
        如果需要排除目录,可以使用 --exclude-dir 选项
        如果要从文件中读取所需排除的文件列表,可使用 --exclude-from filelist.txt
4、使用0值字节后缀的grep与xargs:grep "test" file* -lZ | xargs -0 rm 表示以0字符分隔符合的文件列表并交给xargs使用rm命令删除。
[root@CentOS-6 testdir]# echo "bad words" > file1.txt
[root@CentOS-6 testdir]# echo "nice words" > file2.txt
[root@CentOS-6 testdir]# echo "bad things" > file3.txt
[root@CentOS-6 testdir]# ls
file1.txt file2.txt file3.txt style.txt test z.txt
[root@CentOS-6 testdir]# grep "bad" file* -lZ | xargs -0 rm
[root@CentOS-6 testdir]# ls
file2.txt style.txt test z.txt
5、grep的静默输出: -q选项可以使grep命令不显示任何输出但会根据执行结果的到相应的返回值,命令成功返回0,失败返回非0.
6、打印匹配文本以及之前或之后的行:
      grep "text" -A 3                    #打印匹配含有"text"字符的行以及其后的3行,共4行
      grep "text" -B 3                    #打印匹配含有"text"字符的行以及它前面的3行,共4行
      grep "text" -C 3                    #打印匹配含有"text"字符的行以及他前面和后面的3行,共7行
[root@CentOS-6 testdir]# seq 10 | grep 5 -A 3
5
6
7
8
[root@CentOS-6 testdir]# seq 10 | grep 5 -B 3
2
3
4
5
[root@CentOS-6 testdir]# seq 10 | grep 5 -C 3
2
3
4
5
6
7
8

grep笔记的更多相关文章

  1. grep 笔记

    -a :将 binary 文件以 text 文件的方式搜寻数据-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 ...

  2. cut printf awk sed grep笔记

    名称 作用 参数 实例 cut 截取某列,可指定分隔 -f 列号 -d 分隔符 cut -d ":" -f 1, 3 /etc/passwd 截取第一列和第三列 printf pr ...

  3. Linux文本检索命令grep笔记

    grep是在linux系统中基于行文本非常实用检索工具,通过该命令可以将匹配到的结果信息输出到终端控制台. 语法格式:grep [-ivnc] '需要匹配的内容' 文件名 常用参数说明: -i 检索的 ...

  4. 【Linux】grep笔记

    Linux grep命令用于查找文件里符合条件的字符串. 参数: -a 或 --text : 不要忽略二进制的数据. -A<显示行数> 或 --after-context=<显示行数 ...

  5. sed、grep、awk -- 三剑客笔记记录

    sed常用操作笔记   1.删除文件最后一行: sed -i '$d' filename 2.递归替换内容:sed -i 's/内容A/内容B/g' filename sed -i "s/S ...

  6. linux笔记:搜索命令find,locate,which,whereis,grep

    命令名称:find功能:文件搜索命令所在路径:/bin/find用法:find 搜索范围 匹配条件其他:举例:find /root -name initfind /root -size +1024fi ...

  7. linux shell编程学习笔记(二) --- grep命令

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

  8. linux下grep命令笔记

    grep    -i 不区分大小写    --color 添加颜色        alias grep=‘grep --color=auto’    -v 显示没有被模式匹配到的行    -o 只显示 ...

  9. grep, egrep, fgrep笔记

    grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATT ...

随机推荐

  1. Frame URl

    http://www.zi-han.net/theme/hplus/?v=4.1 http://webapplayers.com/inspinia_admin-v2.5/ http://baijuny ...

  2. 枚举类valueOf方法的疑问

    枚举类中valueOf方法只有一个参数而Enum类中有两个参数,请问Enum实例类中的valueOf方法是从何处继承而来?   答案:jvm进行编译的时候添加的.

  3. 41、javaMail机制

    SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议.SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知. package com.ith ...

  4. C#算法之判断一个字符串是否是对称字符串

    记得曾经一次面试时,面试官给我电脑,让我现场写个算法,判断一个字符串是不是对称字符串.我当时用了几分钟写了一个很简单的代码. 这里说的对称字符串是指字符串的左边和右边字符顺序相反,如"abb ...

  5. Sublime文本排序&查找重复行&删除重复行

    排序 按F9或者选择菜单:Edit > Sort Lines,对每行文本进行排序 查找重复行 排序好后,按Ctrl+F,调出查找面板 查找字符串: ^(.+)$[\r\n](^\1$[\r\n] ...

  6. MyEclipse配置Tomcat 6

    打开首选项 禁用MyEclipse自带的Tomcat 6 下载apache-tomcat-6.0.29.tar.gz 地址:http://yunpan.cn/cKg6kq2RmjdUB  提取码 98 ...

  7. 在 Windows 環境下利用 VNC 遠端控管 Mac OS X Server

    Mac OS Server 可以使用 VNC 來遠端控管.不過,在 Mac 上打開這個功能很簡單,要讓 Windows 的 VNC Viewer 連上卻很難,原來是有原因的. 首先我們來看怎麼在 Ma ...

  8. vb.net字符串格式转为日期型

    vb.net字符串格式转为日期型  比如 "20080815" 转换为"2008-05-15"Dim a As Date  Dim s As String = ...

  9. 简单C语言文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  10. 转载:Solr的自动完成实现方式(第二部分:Suggester方式)

    转自:http://www.cnblogs.com/ibook360/archive/2011/11/30/2269077.html 在Solr的自动完成/自动补充实现介绍(第一部分) 中我介绍了怎么 ...