grep正则表达式

1.回归本次课程主要知识点

chmod, chown, umask, grep, egrep

权限管理:

权限管理: chmod

所属关系管理: chown, chgrp

文件遮罩码:umask

grep: 文本过滤工具;egrep:grep的扩展版

2.grep基本语法

grep [OPTIONS] PATTERN [FILE...]:

选项:

--color=auto:对匹配到的串做高亮显示;

-v:显示模式匹配不到行;

-i: 忽略字符大小写;

-o: 仅显示能够被模式匹配到的串本行;

-q: 静默模式;

-E:使用扩展的正则表达式;

基本正则表达式的元字符:

字符匹配:

.: 匹配任意单个字符;

[]:匹配指定范围内的任意单个字符;

[^]:匹配指定范围内的任意单个字符;

[:lower:], [:upper:], ...

次数匹配:用于要指定其次数的字符的后面;

*: 任意次;

abxy

xay

xxxxxxxy

grep "x*y"

\?:0或1次;

grep "x\?y"

\+:1或多次;

\{m\}:精确限制为m次;

\{m,n\}: 至少m次,至多n次,[m,n]

\{0,n\}:至多n次;

\{m,\}:至少m次;

.*: 匹配任意长度的任意字符;

位置锚定:

^: 行首锚定;用于模式的最左侧;

$: 行尾锚定;用于模式的最右侧;

\<, \b: 词首锚定;用于表示单词的模式的左侧;

\>, \b:词尾锚定;用于表示单词的模式的右侧;

^$: 空白行;

分组:\(\)

分组的小括号中的模式匹配到的内容,会在执行过程中被正则表达式引擎记录下来,并保存内置的变量中;这些变量分别是\1, \2, ...

\1: 从左侧起,第一个左括号,以及与之配对的右括号中间的模式所匹配到的内容;

\2:

3、显示/etc/passwd文件中以bash结尾的行

#grep “bash$”/etc/passwd

4、显示/etc/passwd文件中的两位数或三位数

#grep "\<[1-9][0-9]\{1,2\}\>" /etc/passwd

5、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行

# netstat -tan |grep -n "\<LISTEN[[:space:]]*$"

6、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行

#useradd bash
#useradd testbash
#useradd basher
#useradd nologin -s /sbin/nologin
#grep "^\(\<[[:alnum:]]\+\>\).*\1$" /etc/passwd

8、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行

 grep "\<[[:alnum:]_]\+\>()" /etc/rc.d/init.d/functions

9、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名

#echo /home/mysql/xo/test.sh |grep ‘.*/’

取出目录名想不会写

10、找出ifconfig命令执行结果中1-255之间的数字

 ifconfig |grep -E "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\>"

这题暂时水平只能写这样了

时间: 2024-10-13 12:00:40

grep正则表达式的相关文章

linux入门之grep 正则表达式案例

grep 正则表达式案例 案例一: 1.显示/proc/meminfo文件中以大小s开头的行:(要求:使用两种方式) #grep -i '^s' /proc/meminfo #grep  '^[Ss]' /proc/meminfo #grep -E '^(s|S)' /proc/meinfo 2.显示/etc/passwd文件中不以/bin/bash结尾的行 #grep -v '/bin/bash$' /etc/passwd 3.显示用户rpc默认的shell程序 #grep '^\<rpc\>

grep 正则表达式

名字 grep, egrep, fgerp 解释: grep是一个最初用于Unix操作系统的命令行工具. 在给出文件列表或标准输入后, grep会对匹配一个或多个正则表达式的文本进行搜索, 并只输出匹配(或者不匹配)的行或文本. 用法: grep [option] 'PATTERN' file ... --color=auto          常用选项[option]:               -v : 反向匹配, 显示不能被模式匹配到的行.               -o : 只显示被

grep正则表达式与grep用法详解

功能:输入文件的每一行中查找字符串. 基本用法: grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名 参数说明: -a:将二进制文档以文本方式处理-c:显示匹配次数-i:忽略大小写差异-n:在行首显示行号-A:After的意思,显示匹配字符串后n行的数据-B:before的意思,显示匹配字符串前n行的数据-v:显示没有匹配行-A:After的意思,显示匹配部分之后n行-B:before的意思,显示匹配部分之前n行 --color:以特定颜

grep正则表达式详解及练习

grep正则表达式详解及练习 一.在学习grep正则表达式前,先了解下linux著名的文本处理三剑客: (1)grep.egrep.fgrep 文本搜索工具. (2)sed     文本编辑工具,一种流编辑器,行编辑工具. (3)awk 强大的文本分析工具,文本格式化工具,文本报告生成器. 以上三大命令均支持正则表达式,本文以grep正则表达式为例展开学习. 1.什么是正则表达式? 正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意

grep正则表达式原理介绍及应用实例

应用背景:我们刚刚添加了一个用户Luffy,但是不知道他的默认shell是什么. 问题:如何取出一个用户的默认shell? 解决方法: #grep '^Luffy\>' /etc/passwd | cut -d: -f7 /bin/bashf 通过上面的方法,我们就得到了Luffy这个用户的默认shell 文本搜索工具:就是要根据用户指定的文本模式,逐行的进行匹配,最终得到符合文本模式的行 grep是一个强大的文本搜索工具,下面我们就介绍一下grep的语法: grep [OPTIONS] PAT

linux grep 正则表达式

grep正则表达式元字符集: ^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行. $ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行. . 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p. * 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行. .*一起用代表任意字符. [] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep. [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]

linux 命令grep正则表达式

Linux 命令grep正则表达式 在linux里面有处理文本的三剑,现在我要说的就是grep正则表达式的使用,正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串.vi grep ,awk ,sed 等都支持正则表达式..正则表达式有基本正则表达式和扩展正则表达式. grep默认就是基本表达式. 基本正则表达式: 默认匹配次数:贪婪模式,尽可能多的去匹配. 扩展正则表达式:基于基本正则表达式多加了一些功能,基本一样. 1. grep命令 grep [参数]

awk &nbsp; sed &nbsp; grep &nbsp; &nbsp; 正则表达式

做事要有耐心. 虚心接受建议,你确实有很多缺点. 就算进步慢,也不可以停止前进的脚步. AWK awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有三种不同版本: awk   gawk    nawk 1.使用方法 awk '{pattern + action}' {filenames} 其中 pattern 表示 AWK 在数

vim 和grep 正则表达式相似和区别

正则表达式由两种基本字符类型组成:原义(正常)文本字符和元字符.元字符使正则表达式具有处理能力.所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式. vim元字符 grep 元字符 说明 ^ ^ 匹配输入字符串的开始位置 $ $ 匹配输入字符串的开始位置 * * 匹配前面的子表达式0次或n次(n>0) \+ \+ 匹配前面的子表达式1次或n次(n>1) \? \? 匹配前面的子表达式0次或1次 \{n} \{n\}

grep 正则表达式的使用方法

awk .sed.grep(egrep)要想能工作的更高效,那一定离不开正则表达式的配合:要玩好三剑客,首先就要掌握正则表达式. 最开始的文本: 1)^word 搜索以word开头的行 2) word$ 搜索以word结尾的 3). 代表非换行符的任意一个字符 4)\ 转移符号,让有着特殊身份的字符,脱掉马甲,还原原型 5)* 例如o*表示重复一个字符或多个前面的字符 6).* 匹配所有字符,^.*以任意多个字符开头 7)[] 字符集合的重复特殊字符的符号*如[lg]是代表l或者g 现在的文本为