grep的用法(CentOS7)及有关正则表达式的使用

环境准备:alias grep="grep --color"

1、grep以整行为单位进行处理,行中有的匹配显示出来

Last中取出符合root的行:grep  ‘查找字符串‘

last|grep ‘root‘

2、取出没有root的行:last|grep -vn ‘root‘

-v:反向选择,显示出没有‘root‘行的数据;

-n: 输出行号;

3、取出查找到的‘eth0‘行和此行的前两行与后两行:dmesg|grep -n -A 2 -B 2 ‘eth0‘

-A:after,显示按要求查出的行以及后#行

-B:before,显示按要求查出的行以及前#行

dmesg:显示内核信息。

那么,各取出查找行的前后各三行呢?可以用上面的-A -B,当然,也可以使用-C来表示。

查找出‘eth0‘的前后各三行:dmesg |grep -n -A 3 -B 3 ‘eth0‘或者 dmesg|grep -n -C 3 ‘eth0‘

4、[]的使用:[]里出现的字符被查找出来,[]里面可以有多个字符,但一个[]代表一个字符。

grep -n ‘t[ae]st‘ regular_express.txt

[A-Z]:表示A到Z大写的26个英文字母中的一个;也可用[:upper:];

[a-z]:表示a到z小写的26个英文字母中的一个;也可用[:lower:];

[0-9]:表示0到9的10个数字中的一个数字;也可用[:digit:];

[:alpha:]:表示大小写英文字母;

  grep -n ‘[^g]oo‘ regular_express.txt

解释:‘[^g]oo‘查找oo前面没有g的字符串。第19行,也可以组成oo前面是oo,故而符合要求。

5、行首匹配用^,行尾匹配用$

grep -n ‘^[a-z]‘ regular_express.txt

匹配出行首是小写字母的行。

区别:[^](^在[]里面)表示取补集,取返。

   ^[](^在[]外)表示在行首 。

取出以.号结尾的行:grep -n ‘\.$‘ regular_express.txt

转义字符的详细情况,请自行查阅 。

6、整个单词的匹配:\bword\b或者\<word\>。其中,\b和\<表示词首锚定,\b和\>表示词尾锚定。

  显示用户lp默认的shell程序:cat /etc/passwd | grep ‘\blp\b‘

7、不区分大小写匹配查找:

显示/proc/meminfo文件中以大小s开头的行:

cat /proc/meminfo|grep -in ‘^s‘或者 cat /proc/meminfo|grep -e ‘^s‘ -e ‘^S‘

8、仅显示匹配到的字符串

找出/etc/passwd中的两位或三位数的数字:cat /etc/passwd|grep -o ‘\b[0-9]\{2,3\}\b‘

其中,-o表示仅显示匹配到的字符串。

   \{m,n\}表示前面的字符至少出现m次,至多出现n次。此处是至少出现2位数,至多出现3位数。

 9、分组的使用:

  找出/etc/passwd用户名同shell名的行:cat /etc/passwd|grep ‘^\(\b.*\b\):.*\1$‘

其中:\(\)是分组的表示,\1是引用分组变量。

注意:\(\)是分组的使用;\{\}是前面字符出现次数的使用;[]是匹配任意一个中括号里面指定的字符

时间: 2024-12-31 07:05:44

grep的用法(CentOS7)及有关正则表达式的使用的相关文章

Linux中的grep、egrep及相应的正则表达式和用法

在Linux系统当中,处理文本有三个常用的工具,俗称文本处理三剑客,grep就是其中之一. grep是一种强大的文本搜索工具,它的全称是:Globally search a Regular Expression and Print.工作原理是基于正则表达式引擎按给定的"pattern"对文本进行搜索过滤操作,并把匹配的行打印出来.因此了解要grep的用法我们可以从两方面着手,1:grep命令的用法,2:正则表达式. 1,grep命令的使用方法 首先我们可以使用man命令查看一下grep

grep、egrep及相应的正则表达式和用法

一.grep及基本正则表达式 1.grep基本用法        grep  [OPTIONS]  PATTERN  [FILE...]     常用选项: --color=auto:对匹配到的文本着色后高亮显示: -i:忽略字符大小写: -o:仅显示匹配 到的文本自身: -v, --invert-match:反向匹配: -E:支持扩展的正则表达式: -q, --quiet,静默模式,不输出任何信息:   1)首先建立一个test.txt的文本文件   2)然后使用grep和各选项进行匹配搜索:

linux下grep、egrep及相应的正则表达式和用法

     linux下grep.egrep及相应的正则表达式和用法                       一.简介      Linux上文本处理三剑客(引用自马哥教育 ):  grep, egrep, fgrep:文本搜索工具:基于"pattern"对给定文本进行搜索操作:     sed:Stream EDitor,流编辑器,行编辑工具:文本编辑工具:     awk:GNU awk,文本格式化工具:文本报告生成器:         grep (缩写来自Globally se

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

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

grep过滤用法介绍(一)

grep过滤用法介绍(一) grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件我们就可以用一个正则表达式来表示.为了方便下面的实验进行,我们先进行cp /etc/passwd  1.txt 例如:#grep 'root'1.txt,截图如下: 匹配过滤出,有root的行! grep有一个选项很好用: 1.grep --color 'root' 1.txt 标注红色.为了方便使用,我们做一个别名操作,alias cgrep='grep --color'[删除用unalias+别名]

shell脚本学习笔记之grep命令用法

***grep基本用法 grep [选项] [模式] [文件..] 选项 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只搜索匹配的文件名,而不列出具体的匹配行 -n 列出所有的匹配行,并显示行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -x 匹配整行 -r 递归搜索,不仅所属当前工作目录,而且搜索子目录 -q 禁止储存任何结果,以推迟状态表示所属是否成功 -b 打印匹配行距文件的头部的偏移量,以字节为

grep的用法

1.grep家族 grep: Global search Regular Expression(RE) and Print out the linegrep家族包括grep.egrep和fgrep,egrep和fgrep和grep只有很小的不同.egrep是grep的扩展,支持更多的元字符,等效于grep -E.fgrep是fixed grep, 或fast grep,它不识别任何正则表达式,所有的字符都表示它自己,等效于grep -F. 2.grep支持的元字符集 支持正则表达式基本元字符集和

【文本处理】grep 的用法

在这之前,补充一下正则表达式的知识 +       匹配1个或多个 *        匹配0个或多个 ?        匹配0个或1个 {2,4}    匹配2~4个 {2,}        匹配至少2个 ^        行首 $        行末 .        匹配任意一个字符 [^23]        匹配除2和3以外的任意字符 \        转义 匹配邮箱地址的表达式[a-zA-Z0-9_][email protected][a-zA-Z0-9]+\.[a-zA-Z]{2,5}

文本搜索之grep、egrep、egrep以及正则表达式

一.grep.egrep.fgrep命令 说明:本文在CentOS 6.6 X86_64系统下grep.egrep.fgrep命令和正则表达式的基本参数和使用格式.方法. 1.1.基本定义: grep(Global search Regular Expression ) and Print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据