一,grep的用途:

linux平台有最常用的三大文本处理工具:awk/sed/grep

grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行。

需要注意的地方:grep只支持匹配但不能替换匹配到的内容

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看grep所属的rpm包

[root@blog ~]# whereis grep

grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz /usr/share/man/man1p/grep.1p.gz /usr/share/info/grep.info.gz

[root@blog~]# rpm -qf /usr/bin/grep

grep-3.1-6.el8.x86_64

如果系统提示找不到grep命令或误删除了命令,

可以用dnf安装

[root@blog ~]# dnf install grep

三,查看grep的版本和帮助

1,查看版本

[root@blog ~]# grep --versiongrep (GNU grep) 3.1Copyright (C)2017Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later .

This is free software: you are freeto change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see.

2,查看帮助:

[root@blog ~]# grep --help

3,查看手册:

[root@blog ~]# man grep

四,grep命令的使用例子

1,列出所有的nginx进程

#-v:反向匹配,不显示包含指定字串的行

[root@blog ~]# ps auxfww | grep 'nginx:' | grep -v greproot14470 0.0 0.0 71028 3340 ? Ss May17 0:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx

nginx14471 0.0 0.0 102764 7796 ? S May17 0:00\_ nginx: worker process

nginx14472 0.0 0.0 102436 6048 ? S May17 0:00\_ nginx: worker process

nginx14473 0.0 0.0 102436 6048 ? S May17 0:00\_ nginx: worker process

nginx14474 0.0 0.0 102436 6048 ? S May17 0:00\_ nginx: worker process

nginx14475 0.0 0.0 102436 5992 ? S May17 0:00\_ nginx: worker process

nginx14476 0.0 0.0 102436 6048 ? S May17 0:00\_ nginx: worker process

nginx14477 0.0 0.0 102436 6048 ? S May17 0:00\_ nginx: worker process

nginx14478 0.0 0.0 102436 6048 ? S May17 0:00 \_ nginx: worker process

2,列出所有登录成功/失败的记录

#-i: 忽略大小写

[root@blog log]# grep -i "accepted password" /var/log/secure

3,列出所有不是root登录的记录

[root@blog log]# last | grep -v root

4,输出文件名和行号

#-n: 输出匹配行在文件中的行号

[root@blog log]# grep -i -n "accepted password" *

说明:如果有多个文件匹配时,文件名也会显示出来

5,递归查询

# -R :递归查询目录下的子目录及文件

[root@blog nginxlogs]$ grep -R -i iphone *

如果不加 R,默认遇到目录不会继续查询

6,得到匹配到的记录数量

#-c:显示总共有多少行被匹配到,而不显示被匹配到的内容

[root@blog nginxlogs]$ grep -i -c iphone i_ssl.access.log14811

7,只显示被匹配到的字符串,而不是匹配到的行

#-o:只显示被模式匹配的字符串

[root@blog nginxlogs]$ grep -i -o iphone i_ssl.access.log

8,只匹配单词:

#-w:被匹配的文本只能是单词,不能是单词中的一部分

[root@blog nginxlogs]$ grep -i -w advertise i_ssl.access.log

可以匹配:  /home/index?advertise=b&now_page_id=0&app_key=iPhone

不能匹配:  /advertisement/getList?uid=12345

9,多行显示:显示匹配到的行及其后指定数量的行

匹配accepted的行及其前10行

[root@blog log]# grep -B 10 -i "accepted" secure

匹配accepted的行及其后10行

[root@blog log]# grep -A 10 -i "accepted" secure

匹配accepted的行及其前后各10行

[root@blog log]# grep -C 10 -i "accepted" secure

10,只显示有匹配行的文件名:

#-l:列出文件内容符合指定的样式的文件名称

[root@blog log]# grep -i -R -l "accepted" *

五,grep中使用正则表达式的例子

1,集合:

. :任意一个字符。

[abc] :表示匹配一个字符,这个字符必须是abc中的一个。

[a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。

[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符

查询no和od中间是一个小写字母的账号

[root@blog log]# grep "no[a-z]od" /etc/passwd

2,开头和结尾:

查询以bash结尾的账号

[root@blog log]# grep 'bash$' /etc/passwd

查询所有以非bash结尾的账号

[root@blog log]# grep '[^bash]$' /etc/passwd

查询以r打头的账号:

[root@blog log]# grep '^r' /etc/passwd

查询所有不是r打头的账号

[root@blog log]# grep '^[^r]' /etc/passwd

3,出现次数

x\{m\} 重复字符x,m次,例子:'a\{5\}'匹配包含5个a的行。

x\{m,\} 重复字符x,至少m次,例子:'b\{5,\}'匹配至少有5个b的行。

x\{m,n\}重复字符x,至少m次,不多于n次,例子:'c\{5,10\}'匹配5--10个c的行

passwd 中o出现2次

[root@blog log]# grep "o\{2\}" /etc/passwd

passwd 中o出现最少1次最多2次

[root@blog log]# grep "o\{1,2\}" /etc/passwd

passwd 中o出现最少2次最多不限次

[root@blog log]# grep "o\{2,\}" /etc/passwd

4,其他例子:

显示一个目录下的所有目录:

[root@blog log]# ll -d */

[root@blog log]# ls -l |grep "^d"

列出一个目录下所有非目录的文件

[root@blog log]# ls -l |grep "^[^d]"

列出一个目录下,group和other有权读取的文件

[root@blog log]# ls -l |grep "^-...r..r.."

六,查看centos的版本

[root@blog ~]$ cat /etc/redhat-release

CentOS Linux release8.0.1905 (Core)

centos在文本中搜索字符串_linux(centos8):用grep命令查找文件内容相关推荐

  1. centos在文本中搜索字符串_Google和Baidu的搜索技巧你会吗?

    今日分享:人要有三个头脑,天生的一个头脑,从书中得来的一个头脑,从生活中得来的一个头脑.----<蒙田随笔> 前言 搜索引擎我们经常使用,但是我们最常用的可能就是把要搜索的内容直接复制到搜 ...

  2. centos在文本中搜索字符串_CentOS查找所有文件中某个字符串

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...

  3. 用grep命令查找文件中带特定扩展名的字符串

    2019独角兽企业重金招聘Python工程师标准>>> 如在日志中查找对js文件的请求,可以这么写 grep -Po '\w+\.js' access.log 如果要进一步排除一些文 ...

  4. linux下用grep命令根据文件内容进行关键字搜索[linux ubuntu grep] -转

    命令原型:grep -rl "keyword" filepath 比如现在我们要查找在/home/userlan/目录中哪些文件中包含foobar这个关键字 1. 打开终端 2. ...

  5. linux 文件中搜索字符串命令 grep

    用'grep'搜索文本文件  如果您要在几个文本文件中查找一字符串,可以使用'grep'命令.'grep'在文本中搜索指定的字符串. 假设您正在'/usr/src/linux/Documentatio ...

  6. java 字符串查找程序_java-如何在JAR文件中搜索字符串

    java-如何在JAR文件中搜索字符串 我的应用程序基于Java EE构建. 我在此应用程序中大约有50个罐子. 是否可以搜索特定的关键字(实际上我想搜索关键字BEGIN REQUEST)? user ...

  7. 借助vim统计文本中的字符串数目,行首字符串查询

    借助vim统计文本中的字符串数目 普通命令: :%s/pattern//gn pattern为要查询的字符串 技巧:当需要统计的字符串处于行首,且是其他字符串的子集时,可以考虑每行行首加一个特定字符, ...

  8. linux使用grep查找文件内容,Linux中使用grep命令搜索文件名及文件内容的方法

    这篇文章主要介绍了Linux中使用grep命令搜索文件名及文件内容的方法,同时文中还介绍了将匹配结果高亮显示的方法,相当实用,需要的朋友可以参考下 从文件中搜索并显示文件名 当从多个文件中搜索时,默认 ...

  9. 2019-8-20 [Linux] 6.Shell的基本操作 查看 改变 列出 阅读开头/结尾 循环查看 阅读工具less 查找文件内容 文本分析工具AWK 文本编辑工具SED文件find 帮助man

    文章目录 6.linuxShell的基本操作 6.1 查看目录和文件 6.1.1 显示当前目录:pwd 6.1.2 改变目录:cd 6.1.3 列出目录内容:ls 1) 查看列表信息 以及详细信息 2 ...

最新文章

  1. ubuntu 恢复apt_apt-clone:备份已安装的软件包并在新的 Ubuntu 系统上恢复它们
  2. Hibernate(2)——Hibernate的实现原理总结和对其模仿的demo
  3. 君士坦丁堡分叉引起的安全问题
  4. javaScript 实现多选框全选/反选及批量删除
  5. 年入百万还是低龄低收入?9.04亿网民的真实面目,都藏在这些数据里
  6. 数据之“星”冉冉升起,“星斗奖”申报正式启动!
  7. 服务器apache远程命令,Linux实例:用socket通讯远程执行命令
  8. 配置VS2008本地调试.NETFRAMEWORK源代码
  9. ios开发 方形到圆的动画_3Blue1Brown 动画制作教程(1)--制作第一个自己的动画
  10. 开源私有云盘python_搭建Windows版Seafile开源私有云盘
  11. 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛 C:计算几何
  12. C#AE将当前地图导出为一张图片地图
  13. 诺基亚Q4净利润5.64亿美元 同比增54%
  14. 【云原生】promehtheus整合grafana实现可视化监控实战
  15. ios 渐变透明背景_这不是玩笑!只用线条和背景图来搞定汇报类PPT封面?
  16. 商业堡垒机是什么意思?有免费版的商业堡垒机吗?
  17. 上海调整私车额度参拍条件:申请前一年内无交通违法行为记录
  18. csv库的作用、怎么用、以及csv库的操作快速上手
  19. 笔记本/TK1安装ROS Indigo教程
  20. 天振股份上市首日破发:市值蒸发约8亿元,方庆华夫妇为实控人

热门文章

  1. Unity3D 优化相关
  2. 智能物流给力零售业跨越式发展
  3. 您不知道Bash:Bash阵列简介
  4. 从零开始学习编程_如何开始学习编程
  5. (15)HTML面试题集锦
  6. 修复IE下相对定位子元素溢出Bug
  7. es6 Class 的 name 属性
  8. java面向对象程序课本,Java面向对象程序设计
  9. 视觉SLAM笔记(3) 视觉SLAM框架
  10. win8计算机如何取消系统更新,Win7/Win8电脑如何去掉Win10升级提示