`
473687880
  • 浏览: 535547 次
文章分类
社区版块
存档分类
最新评论

linux下的文本操作之 文本查找——grep

 
阅读更多

摘要:你有没有这样的应用场景:调试一个程序,出现debug的提示信息,现在你需要定位是哪个文件包含了这个debug信息,也就是说,你需要在一个目录下的多个文件(可能包含子目录)中查找某个字符串的位置;另外,有时候,一个程序崩溃,我们需要通过进程控制将其杀死,如何快速找到进程号并杀死进程。本文所讲的grep命令将有至于你完成这样的任务。


本文来源:linux下的文本操作之 文本查找——grep


1.grep命令简介

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能 更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。


2.gre命令的主要参数


-?

同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。

-c,--count

只打印匹配的行数,不显示匹配的内容。

-f File,--file=File

从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。

-h,--no-filename

当搜索多个文件时,不显示匹配文件名前缀。

-i,--ignore-case

忽略大小写差别。

-q,--quiet

取消显示,只返回退出状态。0则表示找到了匹配的行。

-l,--files-with-matches

打印匹配模板的文件清单。

-L,--files-without-match

打印不匹配模板的文件清单。

-n,--line-number

在匹配的行前面打印行号。

-s,--silent

不显示关于不存在或者无法读取文件的错误信息。

-v,--revert-match

反检索,只显示不匹配的行。

-w,--word-regexp

如果被\<和\>引用,就把表达式做为一个单词搜索。


3.一些应用场景


1)场景一:进行perf软件性能测试,出现提示debug信息,vmlinux symtab matches kallsyms,我们需要寻找是哪个文件包含了这个debug信息:

hyk@hyk-linux:/media/usr/src/linux-3.10.9/tools/perf
$ grep -r 'vmlinux symtab matches kallsyms' *
Binary file perf matches
tests/builtin-test.c: .desc = "vmlinux symtab matches kallsyms",
Binary file tests/builtin-test.o matches


外部参考:http://man.chinaunix.net/newsoft/grep/open.htm

分享到:
评论

相关推荐

    Linux- 系统随你玩之-grep查找文件内容-fyydlz.zip

    本资源“Linux-系统随你玩之-grep查找文件内容-fyydlz.zip”包含了关于如何使用`grep`进行文本搜索的示例文件——fyydlz.txt。 `grep`,全称“Global Regular Expression Print”,顾名思义,它支持正则表达式并...

    LINUX操作系统(电子教案,参考答案)

    主要包括Linux的基本概念和操作,Linux的树型结构,Linux的文本编辑,Linux的安装和启动,用户管理,Shell编程技术,进程管理,C编译器,系统扩充,维护与监视,Linux的图形界面,网络的基本概念与设置,Linux在网络...

    动态网络爬虫——linux下C

    在IT领域,网络爬虫是一种自动化程序,用于遍历互联网并抓取网页...以上就是关于"动态网络爬虫——Linux下C"的知识点概述,涵盖从网络爬虫的基本原理到具体实现的各个层面。希望对你在开发C语言网络爬虫时有所帮助。

    windows系统grep命令.7z

    需要注意的是,虽然这个Windows版本的`grep`可能与Linux原生的`grep`有一些差异,比如功能或性能上的区别,但其核心功能——快速文本搜索——依然得到了很好的保留。因此,对于习惯于Linux工作环境的用户来说,这是...

    文本处理工具三剑客之---grep (正则表达式引擎,正则表达式元字符).md

    ### 文本处理工具三剑客之——grep 在Linux系统管理与开发中,文本处理是一项极为重要的技能。作为文本处理的三大工具之一,`grep`以其强大的文本搜索能力而著称,尤其当它与正则表达式相结合时,能够极大地提高...

    高级shell编程 第二部分文本过 滤(共5部分)

    接下来,我们关注第8章——grep家族。grep是一个强大的文本搜索工具,能够快速地在文件中查找符合特定模式的行。grep家族还包括gawk、egrep和fgrep等,它们提供了更丰富的功能和更灵活的匹配选项。egrep支持扩展正则...

    LINUX与UNIX SHELL编程指南——2

    此外,还有更复杂的命令,如grep(搜索文本模式)和find(查找文件),它们在数据处理和文件管理中非常有用。 第三部分可能会讨论到Unix下的文字处理,这包括使用sed(流编辑器)和awk(数据处理语言)。sed常用于...

    新手入门linux之最常用的20条命令(csdn)————程序.pdf

    【标题】:“新手入门Linux之最常用的20条命令(csdn)——程序.pdf” 【描述】:本文档总结了Linux新手入门时最常使用的20个命令,旨在帮助初学者快速掌握Linux基础操作。 【部分内容】: 1、**cd** 命令:`cd` ...

    跟老男孩学linux三剑客命令V1.5

    本书以实用为导向,致力于帮助读者全面掌握Linux操作系统中的文本处理利器——grep、sed、awk这三剑客。这些工具对于Linux系统管理至关重要,对于处理文本数据和自动化任务来说,它们的威力不可小觑。 grep是文本...

    linux命令大全——超级详细

    在Linux操作系统中,命令行是用户与系统交互的主要方式,对于初学者来说,掌握一系列基本的Linux命令是至关重要的。本篇文章将详细讲解Linux命令大全,帮助你从入门到熟练,提升你的Linux操作技能。 一、文件和目录...

    linux查找日志技巧

    本文将详细介绍Linux环境下常用的日志查找技巧,包括基本命令的使用方法及其应用场景。 #### 二、基础命令解析 为了更好地掌握日志查找技巧,首先需要了解几个基本的Linux命令: 1. **`tail`**:用于显示文件的...

    鸟哥的私房菜——基础篇PDF

    《鸟哥的私房菜——基础篇PDF》是一本针对Linux初学者的入门教程。本书内容全面,从基本概念到实际操作都有涉及,通过通俗易懂的语言帮助读者快速理解和掌握Linux系统的基本操作和管理技巧。考虑到Linux是一个庞大的...

    grep.exe cat.exe bash.exe awk.exe

    这里提到的四个命令——`grep.exe`、`cat.exe`、`bash.exe`和`awk.exe`,虽然通常与Linux相关,但通过特定方式,它们也可以在Windows系统中使用。让我们深入探讨这些工具的功能和用途。 1. `grep.exe`:`grep`...

    Linux三剑客命令从入门到放弃

    在IT领域,Linux操作系统是许多系统管理员和开发者的重要工具,其中Linux三剑客——AWK、SED和GREP,是日常工作中不可或缺的命令行工具。它们各自承担着文本处理、流编辑和搜索的关键任务,帮助用户高效地处理大量...

    《linux常用命令全集》——精通linux常用命令的宝典

    在Linux操作系统中,命令行是其核心组成部分,熟练掌握各种命令是成为Linux高手的必备技能。《Linux常用命令全集》是一本详细介绍了Linux命令的宝典,旨在帮助用户理解和运用这些命令,从而更好地驾驭Linux系统。...

    Linux操作系统下的实验

    在Linux操作系统下进行实验,是深入理解和掌握这一强大开源系统的关键步骤。Linux系统以其灵活性、稳定性和安全性在各种领域得到广泛应用,从服务器到个人电脑,再到嵌入式设备。本系列实验涵盖了六次实践,旨在全面...

    AIX、HP、linux操作系统命令汇总.rar_AIX、HP、linux操作系统命令汇总_linux操作系统_silence7

    `grep`用于搜索文本,`find`查找文件,`vi/vim`是常用的文本编辑器,`apt-get`或`yum`则用于软件包的安装和管理。此外,`top`或`htop`监控系统性能,`df`和`du`分别显示磁盘空间和文件大小。 这三种操作系统虽然各...

    Linux_jiangyi.rar_linux操作系统_哈尔滨工业大学

    《Linux操作系统详解——哈尔滨工业大学讲义解析》 在信息技术领域,Linux操作系统以其开源、稳定、高效的特点备受青睐,尤其在服务器领域占据主导地位。哈尔滨工业大学的Linux操作系统讲义,为学习者提供了一条...

    华为内部学习资料——Linux常用命令及基础知识介绍

    文件操作是Linux中最基础也是最常用的操作之一,主要包括目录操作、文件查找、文件浏览、文件编辑、文件归档及压缩和文件链接等方面。 **2.1 目录操作** - **`pwd`**:显示当前工作目录。 - **`ls`**:列出目录...

Global site tag (gtag.js) - Google Analytics