专栏首页一个会写诗的程序员的博客Linux 下 grep 显示前后几行信息, 递归查找, 反向查找

Linux 下 grep 显示前后几行信息, 递归查找, 反向查找

标准unix/linux下的grep通过下面參数控制上下文

grep -C 5 foo file 

显示file文件里匹配foo字串那行以及上下5行

grep -B 5 foo file 

显示foo及前5行

grep -A 5 foo file 

显示foo及后5行

查看grep版本号的方法是

grep -V

实例

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file 

结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi 

输出结果如下:

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

结果如下所示:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux fuser 命令详解 常用选项fuser功能使用示例fuser不同信号的应用fuser -lfuser -v /root/install.logfuser -k -SIGHUP /root

    linux环境下,当使用umount命令卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount –l...

    一个会写诗的程序员
  • 13.2 Spring Boot启动报错:Whitelabel Error Page13.2 Spring Boot启动报错:Whitelabel Error Page问题描述原因分析解决方案

    首先,这个出错页面是SpringBoot的一个默认出错页面。源码在:org.springframework.boot.autoconfigure.web.ser...

    一个会写诗的程序员
  • 怎样写好一篇高质量的技术文章?

    原则一:一个人的影响力不是由他的财富决定,也不是由他的智力决定,而是由他能帮助多少人决定。

    一个会写诗的程序员
  • 单元测试工具(连载11)

    表5 pytest的装饰器

    小老鼠
  • 不“丢脸”实现人脸识别,使用TiFGAN合成音频 | AI Scholar Weekly

    呜啦啦啦啦啦啦啦大家好,还记得那位在中国向工程师们教授AI的美国老师Christopher Dossman吗?大数据文摘与他取得了联系,并且有幸邀请他开设了专栏...

    大数据文摘
  • 走近STL -- 你好,List

    从实现层面看,相较于Vector的线性空间,List的实现要复杂的多。 List的优势在于每次插入或删除一个元素,就分配或释放一个位置。因此,List对于空间...

    看、未来
  • libev源码解析——定时器原理

            本文将回答《libev源码解析——I/O模型》中抛出的两个问题。(转载请指明出于breaksoftware的csdn博客)

    方亮
  • Mybatis分页插件PageHelper的配置和使用方法

    前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端分页 一次性请求数据表格...

    用户1225216
  • Pytest自定义标记mark及指定文件/类/方法/用例执行

    pytest.main(['-s','test01.py','-m=test'])

    橙子探索测试
  • pytest文档63-内置fixture之pytestconfig

    前面讲 request 是pytest的一个内置 fixture ,作用是获取测试的上下文,可以通过request.config 获取配置对象。 pytestc...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券