热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxgrep命令例子,Linuxgrep命令示例

grep(globalregularexpressionprint)是Linux下查找匹配字符串的工具,非常强大。grep在查找指定字符串时,如果找到会

grep(global regular expression print)是Linux下查找匹配字符串的工具,非常强大。grep在查找指定字符串时,如果找到会显示包含查找字符串的行。

1、在单个文件中查找匹配字符串

下面命令在/etc/passwd文件中查找“root”:

$ grep root /etc/passwd

b00a0f7a3256bb103e8159ee349054a9.png

2、在多个文件中查找匹配字符串

$ sudo grep root /etc/passwd /etc/shadow /etc/gshadow

666f92320134cb182cc30d70a4a15e68.png

3、列出包含指定字符的文件

$ sudo grep -l root /etc/passwd /etc/shadow /etc/gshadow

bdc96e6d2825aa3f450ea0f943444c4f.png

4、在文件中查找匹配字符串,并显示相应的行号

$ grep -n root /etc/passwd

0beeea1b5195eaddbf22dc458b5b41d5.png

5、输出所有不匹配的行

$ grep -v root /etc/passwd

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/usr/sbin/nologin

man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin

proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

libuuid:x:100:101::/var/lib/libuuid:

syslog:x:101:104::/home/syslog:/bin/false

messagebus:x:102:106::/var/run/dbus:/bin/false

usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false

dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false

pulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false

mm:x:1000:1000:mm,,,:/home/mm:/bin/bash

vboxadd:x:999:1::/var/run/vboxadd:/bin/false

6、使用^匹配行开始字符

下面例子匹配passwd文件中以root开始的行:

$ grep ^root /etc/passwd

af0d7963dd1240ddfc3fb207999f79e7.png

7、使用$匹配行结尾字符

下面例子匹配passwd文件中以bash结束的行:

$ grep bash$ /etc/passwd

5585841a4a7a7e02240215368377fe95.png

8、递归的搜索目录中所有文件

$ sudo grep -r root /etc/

e03f6e174f0dc77df6f3b2e7479a75aa.png

9、搜索文件中的空行

$ grep -n ^$ /etc/profile

3:

19:

22:

-n选项显示行号

10、忽略大小写

$ grep -i RooT /etc/passwd

9ecf74a07c0dc23aeff1eef64c5f147d.png

11、匹配多个字符串

$ grep -e root -e www-data /etc/passwd

32889740a91422c4fa36736b439305f3.png

12、使用匹配模式文件

创建匹配模式文件,pattern文件内容:

$ cat pattern

^root

www-data

false$

使用grep匹配:

$ grep -f pattern /etc/passwd

fafe6aac1e9a16d4ce3251fef207ca56.png

13、统计匹配的行数

统计上面例子中配置的行数:

$ grep -c -f pattern /etc/passwd

821043fe7b2da8bbcd403a53b5f2feee.png

14、显示匹配行上下文

$ grep -B 4 root /etc/passwd  // 匹配行前4行内容

root:x:0:0:root:/root:/bin/bash

$ grep -A 4 root /etc/passwd  // 匹配行后4行内容

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

$ grep -C 4 root /etc/passwd  // 匹配行前后各4行内容

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

sync:x:4:65534:sync:/bin:/bin/sync

15、统计文件总行数

$ grep -c ".*" filename

e034a1ec41226b0008cc156ec3ee3658.png

相关主题



推荐阅读
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • CS231n简介详见CS231n课程笔记1:Introduction。本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记本部分实现的是Momentum,RMSProb, ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • linux6.5 配置邮件服务,centos 6.5服务器搭建邮件服务postfix和dovecot
    centos6.5搭建邮件服务postfix和dovecot------------------------------------------------安装DNS指定邮件交换记 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有