学linux系统,grep这个命令是必须要掌握的。grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式。日常工作中,grep绝对是用的最多的命令之一。

注:本文只介绍grep的用法,关于正则表达式不做介绍。

下面来看看它的一些常见选项以及含义:

选项-i 搜索时候忽略大小写

-n 列出所有的匹配行,显示行号

-v 反向选择

-c 只输出匹配行的数量

-l 只列出符合匹配的文件名,不列出具体的匹配行

-h 查询多文件时不显示文件名

-r 递归搜索

-q 禁止输出任何结果,已退出状态表示搜索是否成功

--color=auto 将找到的关键字加上颜色显示

-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

-B, --before-context=NUM 打印以文本起始的NUM 行

-A, --after-context=NUM 打印以文本结尾的NUM 行

下面来介绍grep的一些用法:

我们知道php.ini有一个时区的配置,具体的不太清楚,只知道timezone,现在我们想找到该配置信息,就可以使用grep来查找# 加上-i选项,忽略大小写

# grep -i timezone /usr/local/php/etc/php.ini

; Defines the default timezone used by the date functions

; http://php.net/date.timezone

date.timezone = PRC

grep支持在多个文件中查找# 这里我们加上-n选项,输出文件的行号

# grep -in stdio itoa.c quicksort.c

itoa.c:2:#include

quicksort.c:1:#include

反向选择的-v使用,当我运行了一个程序,想要看看这个程序是否还存在进程中,可以使用下面的方法# ps aux | grep curl.php

root 14374 98.3 1.2 277844 12396 pts/0 R+ 07:54 1:07 php curl.php

root 14404 0.0 0.0 112664 984 pts/2 R+ 07:55 0:00 grep --color=auto curl.php

这里就有个问题,我们需要使用-v来过滤掉grep本身的进程# ps aux | grep curl.php | grep -v grep

root 14374 98.5 1.2 277844 12396 pts/0 R+ 07:54 2:36 php curl.php

我们想统计last命令中含root的行数,那么这里就需要用到-c选项了。# last | grep -c root

353

经常有这种需求,需要批量替换文件中的某文本,那么怎么知道这些文本在哪几个文件中呢。grep可以做到,配合-l选项# find . -type f -exec grep -l define {} \;

./find.c

./itoa2.c

./wc.c

./test.c

./wordcnt.c

./longestline.c

./cal.c

./sortline2.c

./sortline.c

./found.c

./atof.c

下面再看一个例子,该例子用到了-E扩展正则,我们想要过滤掉php.ini文件中的注释行以及空白行grep -vE '^;|^$' /usr/local/php/etc/php.ini

还有一个常用的选项-r,它可以用来递归查找当前目录下所有文件,以及子目录文件。下面,我们想查看网站目录下还有footer的文件有哪些,可以用下面的命令来查找grep -rn footer ./

linux下grep命令用法,全面详解linux下grep命令的用法相关推荐

  1. Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

    Linux系统中的软件管理详解(下) 5.软件仓库管理命令 a)dnf 命令: 管理软件仓库中的安装包 dnf repolist ##列出仓库信息clean all ##清除系统中已经加载的仓库缓存信 ...

  2. linux命令vi作用,详解Linux常用命令的用法(二)――――文本编辑器命令vi/vim

    vi/vim介绍 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. 1.vi和vim的区别: 就是在进入一般命令模式后,当按下(i.I.o ...

  3. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  4. linux 命令行 time,详解Linux time 命令的使用

    1.命令简介 time 用于统计命令执行所消耗的时间及相关系统资源等信息.time 可以显示的资源有四大项,分别是: Time resources Memory resources IO resour ...

  5. linux 查看网络流量来源_详解Linux查看实时网卡流量的几种方式

    在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众 ...

  6. linux c 获取进程p id,详解Linux获取线程的PID(TID、LWP)的几种方式

    在 Linux C/C++ 中通常是通过 pthread 库进行线程级别的操作. 在 pthread 库中有函数: pthread_t pthread_self(void); 它返回一个 pthrea ...

  7. navicat for mysql命令行_详解 Navicat for MySQL 命令工具

    Navicat for MySQL是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB.这个功能齐备的前端软件为数据库管理.开发和维护提供了直 ...

  8. java中iterator用法_java_详解Java中Iterator迭代器的用法,迭代器(Iterator)迭代 - phpStudy...

    详解Java中Iterator迭代器的用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为&quo ...

  9. Linux安装软件包无法打开rpm,详解Linux 操作系统下安装rpm包的方法步骤

    第2代Linux操作系统在安装软件方面相当简单:第一步,搜索你要的软件,比如你要找一个游戏软件,它的名称叫myward,这个游戏软件的介绍是:myown war game.Linux操作系统搜索这个软 ...

  10. linux 查看u盘文件,图文详解Linux下使用U盘的方法

    习惯了在Windows系统下即插即用U盘,换成Linux系统下你可能就不会使用了.为什么这么说呢?因为Linux系统U盘被视为SCSI设备,因此不能直接使用,还需要我们手动进行相应的设置,下面这篇教程 ...

最新文章

  1. 面向生信分析的高性 RStudio 服务器
  2. python之拆包与装包
  3. 分析一个软件要考虑的问题
  4. spring bean生命周期管理--转
  5. CPUID详解[增加TLB与Cache]
  6. 工作流实战_16_flowable 办理任务
  7. python腐蚀膨胀代码_OpenCV+python实现膨胀和腐蚀的示例
  8. 【网站】给网站添加一个夜间模式切换按钮
  9. Spring Boot Executable jar/war 原理
  10. 怎样加入社区项目Karbor的Review?
  11. android studio for android learning (十六) support-annotations简介
  12. python练习题--斐波那契数列
  13. VC++键盘钩子demo
  14. 数据仓库与数据挖掘课后思考题整理
  15. Algorithms-3.2 Binary Search Trees 二叉查找树
  16. 编程中,有哪些好的习惯一开始就值得坚持?
  17. Android Protobuf应用及原理
  18. 【附源码】Python计算机毕业设计社区志愿者管理系统
  19. python技术分享_Python技术分享:爬虫
  20. 「需求工程」需求工程-介绍(第1部分)

热门文章

  1. 【Discuz】dz3.2论坛搬家心得
  2. Linux下阅读docx工具,Linux装机必备软件及工具.docx
  3. 计算机恢复数据怎么恢复,电脑不小心删除的文件如何恢复?教你数据恢复方法!...
  4. 单片机中段程序_单片机外部中断详解及程序
  5. win10 桌面 扬声器无法打开 解决方法
  6. 冰点还原精灵可以支持1T大硬盘
  7. 动态网站设计与开发总结
  8. win7系统开启snmp服务器配置,简单几招教你win7开启 snmp服务
  9. python编程图书批发商店的某本书的零售价是26.5_根据实验指导书,完成实验3的所有任务,使用 实验三(实验报告).docx 完成报告并提交。_学小易找答案...
  10. [转]PAGEII携手极速网爱情电影经典对白