bash 正则表达式,文本文件查找 grep   egrep

1. 语法+选项

语法: grep  [-cinvABC]  ‘word‘  filename
-c :打印符合要求的行数
-n :在输出符合要求的行的同时连同行号一起输出
-v :打印不符合要求的行
-A :后跟一个数字(有无空格都可以),例如 –A2
则表示打印符合要求的行以及下面两行
-B :后跟一个数字,例如 –B2 则表示打印符合要求
的行以及上面两行
-C :后跟一个数字,例如 –C2 则表示打印符合要求
的行以及上下各两行
-r : 会把目录下面所有的文件全部遍历
grep -r ‘root‘ /etc/    将目录下所有文件全查一次

[0-9]  取括号中 任意1个

2. 例子介绍
过滤出带有某个关键词的行并输出行号 grep -n ‘root‘ 1.txt
过滤出不带有某个关键词的行并输出行号grep -n -v ‘root‘ 1.txt
过滤出所有包含数字的行 grep ‘[0-9]‘ 1.txt
过滤出所有不包含数字的行 grep -v ‘[0-9]‘ 1.txt
去除所有以‘#‘开头的行 grep -v ‘^#‘ 1.txt
去除所有空行和以‘#‘开头的行 grep -v ‘^$‘ 1.txt|grep -v ‘^#‘
过滤出以英文字母开头的行 grep ‘^[a-zA-Z]‘ 1.txt
过滤出以非数字开头的行 grep ‘^[^0-9]‘ 1.txt
过滤任意一个或多个字符 grep ‘r.o‘ 1.txt;
grep ‘r*t‘ 1.txt; grep ‘r.*t‘ 1.txt
. 表示任意一个字符;*表示零个或多个前面的字符 ;
.*表示零个或多个任意字符,空行也包含在内
指定过滤字符次数 grep ‘o\{2\}‘ 1.txt

3. egrep
egrep工具 是grep工具的扩展
egrep ‘o+‘ 1.txt   表示1个或1个以上前面字符
egrep ‘o?‘ 1.txt  表示0个或者1个前面字符
egrep ‘roo|body‘ 1.txt  匹配roo或者匹配body
egrep ‘r(oo)|(at)o‘ 1.txt 用括号表示一个整体
egrep ‘(oo)+‘ 1.txt 表示1个或者多个 ‘oo‘

4. . * + ? 总结
. 表示任意一个字符(包括特殊字符)
* 表示零个或多个*前面的字符
.* 表示任意个任意字符(包含空行)
+ 表示1个或多个+前面的字符
? 表示0个或1个?前面的字符
其中,+ ? grep不支持,egrep才支持。

^ 锚定行首,此字符后面的字符,必须出现在行首

$锚定行尾,此字符后面的字符,必须出现在行尾

[^]中的 "^"表示  非的意思

^$ 空行

\<或者\b   后面的任意字符 必须做为单词手部出现

\>或者\b 前面的任意字符,必须作为单词的尾部出现

\<root\> 为整个单词出现

\(\)分组: \(ab\)* 表示出现任意个 ab

扩展分组不需要加脱意;

a|b  表示 a 或者 b

时间: 2024-10-25 00:25:13

bash 正则表达式,文本文件查找 grep   egrep的相关文章

grep,egrep相应的正则表达式用法详解。

grep(global search regular RE )是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,然后符合用户需求的字符串打印出来,但是主意,grep在数据中查找一个字符串时,是以"整行"为单位进行数据筛选的. 例子:grep --color=auto "root" /etc/passwd egrep命令等同于grep -E,利用此命令可以使用扩展

grep egrep 用法以及其相应的正则表达式

grep egrep 用法以及其相应的正则表达式 一.grep.egrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法. 1.grep的定义: grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串

grep, egrep及相应的正则表达式用法详解

grep, egrep及相应的正则表达式用法详解 一.grep/egrep Global search REgular expression and Print out的简写,是一种强大的文本搜索工具,它根据用户指定的文本模式(正则表达元字符以及正常字符组合而成)对目标文件进行逐行搜索,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. linux使用GNU版本的grep.它功能更强,可以通过-E.-F命令行选项来使用egrep和fgrep的功能(fgrep不使用

grep,egrep 及正则表达式

Linux中一切皆文件:文本文件,对文本文件的搜索就非常的关键和常用. Linux文本搜索工具:grep ,egrep,fgrep,文本搜索指文本文件中内容的搜索. 文件名的搜索是linux中bash的特性,globbing,文件名通配,有点windows中的搜索相似,但功能跟强大.一般配合 ls 命令使用.可参考视频:bash基础特性(01) globbing:中的元字符: *:用来通配任意长度任意字符,?:用来匹配单个字符,[]:用于比配指定范围内的字符,[^]:用于取反范围内的字符. 总结

grep/egrep和正则表达式汇总

grep, egrep, fgrep 语法格式: grep [option] ... 'PATTERN' FILE --color=auto 对目标FILE进行搜索,显示能够匹配的行 正则表达式 基本正则: grep 扩展正则: grep -E 或者 egrep fgrep: fast但是不支持正则表达 基本正则表达式的元字符: 字符匹配: .  匹配任意单个字符 [] 匹配指定范围内的单个字符 [0-9], [[:digit:]] 单个数字 [a-z], [[:lower:]] 单个小写字符

通配符和正则表达式-grep,egrep,fgrep

通配符和正则表达式-grep,egrep,fgrep 通配符和正则表达式,通配符用于文件名匹配,命令支持ls,cp,rm等;正则为通用匹配,命令支持grep,awk,sed,vi,find等.文本过滤工具grep,egrep,fgrep 通配符 *  匹配零个或多个任意字符 ?  匹配单个任意字符 [] 匹配指定范围内的一个字符,[]括号中的 字符间隔符 可以省略,如,\=:等等.举例[1:2=3,5\7] = [12357],也推荐使用这种省略写法作为标准 ^  取反,表示非.注意:非数字即包

Linux学习(二十三)正则表达式(一)grep/egrep

一.概述 正则表达式是运维工作中经常需要用到的知识.文件查找,日志分析,rewrite规则,shell脚本等等,都需要正则表达式的知识.那么什么是正则表达式呢?我的理解就是,按照一定的规则找到或者替换你需要的字符串,这个规则就是正则表达式,准确的讲,它就是一个规则.使用正则表达式的命令有很多,我们今天讲到的grep和egrep就是最常用的.此外还有sed.awk,我们会在后续接着讲到. 二.grep/egrep egrep是grep的增强版,grep能实现的egrep都能实现,而且在某些地方,使

Shell编程之正则表达式三剑客——grep,egrep

正则表达式概述 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 基础正则表达式 正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式.基础正则表达式是常用的正则表达式的最基础的部分.在 Linux 系统中常见的文件处理工具中 grep 与 sed 支持基础正则表达式,而 egrep 与 awk 支持扩展正则表达式.

grep egrep及相关的正则表达式用法

一.什么是正则表达式 在编写处理字符串的时候,经常需要查询某些符合复杂规则的字符串,正则表达式就是描述这些规则的工具. 正则表达式有基本表达式和扩展正则表达式.扩展正则表达式,是基本正则表达式的补充.有些元字符,稍有不同. 二.正则表达式的组成部分: 由元字符及正常字符所书写,元字符不表达字符本意,而表达控制或通配的功能: 2.1基本正则表达式/扩展正则表达式元字符 字符匹配:[基本/扩展正则表达式元字符相同] 基本/元字符: 扩展/元字符: 说明: . . 匹配任意单个字符 [] [] 匹配指