Linux命令学习:grep文本搜索工具

Mark: 本系列博文只是记录作者在Linux学习过程中的点点滴滴,新手可能参考,高手们就略过吧!!!

Linux学习总结:grep文本搜索工具

功能:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,并把匹配的行打印出来,它的全称为“Global Regular Expression Print”,全局正则表达式,它默认是开放给所有用户。

语法格式:Grep [option] pattern file

Option:命令选项,具体包含:

-v: --revert-match 反向选取,显示不包含匹配文件的所有行;

-i: --ignore-case 忽略字符大小写;

-c: --count 计算符合样式的列数

-E: --extended-regexp 支持使用正则表达式;

-A: --after-context 除了显示符合范本样式的列之外,并显示该行之后的内容

-B: --before-context除了显示符合范本样式的列之外,并显示该行之前的内容

-C: --context除了显示符合范本样式的列之外,并显示该行之前后的内容

-n: --line-number 在显示符合样式的那一行之前同时标记出该行的列数编号;

实例一、显示文件“/tmp/testin.sh”里面不包含“Linux”的所有行

命令:grep –v–n “Linux” /tmp/testin.sh

实例二、查询文件“/tmp/testin.sh”里关键字“Linux”不区分大小写的所有行

命令:grep -v -n "Linux" /tmp/testin.sh

实例三、显示包含大小写“Linux”关键字的所有行,并计算总数

命令:grep -v -n -c "Linux" /tmp/testin.sh

正则表达式:是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能。

正则表达式元字符,其中:

字符匹配:

“.”  : 匹配任意单个字符,如”grep.p”匹配grep后接一个任意字符;

“[]”  : 匹配指定范围内的任意个字符,如”[Gg]rep”匹配Grep 和grep;

“[^]” : 匹配不在指定范围内的任意个字符,如”[^a-z]grep”匹配不包含”a-z”的字母开头,紧接着grep;

位置锚定:

“^” : 行首定位符,”^grep”匹配所有以grep开头的行;

“$” : 行尾定位符,”grep$”匹配所有以 grep结尾的行;

“^$”: 空白行;

“\<”: 锚定单词的开始,如:”\<grep”匹配包含以”grep”开头的单词的行;

“\>”:锚定单词的结束,如:”grep\>”匹配包含以”grep”结尾的单词的行;

次数匹配:

“*”    : 匹配零个或多个字符,如”*grep”匹配所有一个或者多个空格后接着grep的行;

“.*”   : 匹配任意字符;

“\?”   : 零次或者壹次,前面的字符可有可无,如”gr\?ep”,代表可以是grep,ep;

“\{m\}” : 重复m次,如”grep\{2\}”,匹配包含至少2个”grep”的行;

“\{m,\}”: 重复字符至少m次,如”grep\{2,\}”匹配至少有2个grep的行;

“\{m,n\}”: 重复字符至少m次,至多n次,如”grep\{2,3\}”匹配2至3个grep的行;

POSIX字符:

[:alnum:] :文字数字字符;

[:alpha:] : 文字字符;

[:digit:] : 数字字符;

[:graph:] : 非空字符(非空格、控制字符);

[:lower:] : 小字字符;

[:print:] : 非空字符,包括空格;

[:space:] : 所有空白字符(新行、空格、制表符);

[:upper:] : 大写字符;

[:punct:] : 标点符号;

实例四、显示文件“/tmp/test.grep”中单词为“Grep”、“grep”

命令:grep –n “[Gg]rep” /tmp/test.grep

实例五、显示文件“/tmp/test.grep”中以“grep”开头的行

命令:cat /tmp/test.grep | grep ^grep

实例六、显示文件“/tmp/test.grep”中以“grep”结尾的行

实例七、显示/tmp/test.grep中以至少一个空白字符结尾的行;

命令:grep -n "[[:space:]]\{1,\}$" /tmp/test.grep

待续!

时间: 2024-10-16 17:29:08

Linux命令学习:grep文本搜索工具的相关文章

grep文本搜索工具与正则表达式

一.文本搜索工具grep (一)grep简介 Linux上常用的三个文本处理工具被人们称为Linux文本处理三剑客,他们分别是: 1.grep(egrep,fgrep):文本搜索工具,基于"pattern"对给定的文本进行搜索操作. 2.sed:stream editor,流编辑器,行编辑工具,文本编辑工具. 3.awk:GNU awk,文本格式化工具,文本报告生成器. 他们都是很优秀的文本处理工具.现在,我就重点介绍下grep. grep:global search regular

正则表达式和grep文本搜索工具

正则表达式和文本搜索工具介绍 正则表达式:如果想搜索/etc/passwd文件中以root开头的行,对与人来说很容易理解,但是对与计算机来说就无法理解,这个时候就需要使用正则表达式来表达过滤条件了,让用户实现对文本的智能搜索.正则表达式就是由元字符及正常字符所书写的模式,其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式达到字符串的复杂控制. grep:支持正则表达式,是一个文本搜索工具,

Linux中文本搜索工具“grep”命令详解

人生中应该有两次冲动,一次是轰轰烈烈的爱情,一次是说走就走的旅行.我属于第三种,轰轰烈烈的辞职然后马不停蹄的参加了马哥的linux面授班,两周时间内对linux有了些初步的了解,与此同时,两周内八天课程中的各种定义.概念.原理.命令由于量大.琐碎,也着实给我们这些小白一个下马威,即使每天11点撤退也觉得时间不够用.鉴于对自己的负责和马哥的作业要求,特对文本搜索工具grep写些使用指南,其中可能会有描述不确切或有偏颇之处,望及时指正. 开始--. 首先,要说一下grep是什么,用在什么地方. gr

Linux下文本搜索工具grep命令使用入门

grep命令入门 如果想通过使用grep命令来实现理想化的文本搜索,对正则表达式的了解是比不可少的.文献1对正则表达式语法做了一个简单的介绍,文献2提供了一个简单的入门.码农也可以自己google一下其他的参考资料.下面就grep命令的使用做个入门级的介绍. 1.1 grep命令的变种 linux下除了grep命令可以完成文本搜索外,还存在egrep,fgrep,rgrep三个命令.这三个命令都是由grep加上一些控制参数演变而来,如egrep=grep -E, fgrep=grep -F, r

Linux命令之文本搜索工具grep、egrep、fgrep

grep即global search regular expression_r(RE) and print out the line,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep家族包括grep.egrep和fgrep:egrep是grep的扩展:fgrep查找一个或多个与给出的字符串或词组相匹配文件中的行,不支持规则表达式 语法:grep [OPTIONS] PATTERN [FILE...] 常用参数选项 --color=auto:对匹配到的串做高亮

Linux 基础之文本搜索工具grep

一.grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep grep: 默认支持基本正则表达式: egrep: 扩展正则表达式: fgrep: 不支持正则表达式元字符,搜索字符串的速度快 二.通过man手册获取grep帮助信息: #man grep GREP(1)                     

Linux命令学习-grep

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式grep [options] 3.主要参数[options]主要参数:-c:只输出匹配行的计数.-I:不区分大 小写(只适用于单字符).-h:查询多文件时不显示文件名.-l:查询多文件时只输出包含匹配字符的文件名.-n:显示匹配行及 行号.-s:不显

linux命令学习笔记(39):grep 命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来. grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用, 模板后的所有字符串被看作文件名.搜索的结果被送到标准输出,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜

文本搜索工具grep,egrep,fgrep的区别

一.grep 1.用途:文本搜索工具,根据用户指定的文本模式(patten)对目标文件进行逐行搜索,显示能够被模式匹配的行内容. 2.命令使用格式: grep [option] ' PATTEN 'files- 2.1 常用选项详解 2.1.1 单文件查找: -n:显示匹配行的行号(为了显示清楚匹配行,下面的都用n+其他选项) -v :反向匹配(即显示非匹配行) –> 常用于过滤掉一些无关的信息,增加显示信息的可读性. ※第一个[5]就是指第5行被匹配. -o:只显示行中被模式所匹配的字符串,而