正则、grep工具

正则表达式是用于字符串的模式分割、匹配、查找及替换等操作。模糊匹配

Linux正则表达式一般以行为单位处理的。

通配符例子:ls *.log这里的*就是通配符(表示所有),不是正则表达式

三剑客以外的*是通配符

grep [-cinvABC] ‘word‘ filename

-c 行数

[[email protected] ~]# grep "root" passwd  //grep自带颜色

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

[[email protected] ~]# grep -c "root" passwd //-c 行数

2

-i 不区分大小写

[[email protected] ~]# grep -ni "root" passwd  //-i 不区分大小写

1:root:x:0:0:root:/root:/bin/bash

10:operator:x:11:0:operator:/root:/sbin/nologin

20:adsadadaROOT

21:adsadadaRooT

-n 显示行号

[[email protected] ~]# grep -n "root" passwd  //-n 显示行号

1:root:x:0:0:root:/root:/bin/bash

10:operator:x:11:0:operator:/root:/sbin/nologin

-v 取反

[[email protected] ~]# grep -nv "root" passwd  //-v 取反

2:bin:x:1:1:bin:/bin:/sbin/nologin

3:daemon:x:2:2:daemon:/sbin:/sbin/nologin

4:adm:x:3:4:adm:/var/adm:/sbin/nologin

5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

6:sync:x:5:0:sync:/sbin:/bin/sync

-r 遍历所有子目录

[[email protected] ~]# grep -r "root" /etc/  //-r 遍历所有子目录

/etc/pki/ca-trust/extracted/README:root CA certificates.

/etc/pki/ca-trust/extracted/java/README:root CA certificates.

[[email protected] ~]# grep -r "root" /etc/ > /tmp/grep.txt //当内容不好找时,可以定向到文件

[[email protected] ~]# grep "passwd" /tmp/grep.txt

/etc/passwd:root:x:0:0:root:/root:/bin/bash

/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin

/etc/passwd-:root:x:0:0:root:/root:/bin/bash

/etc/passwd-:operator:x:11:0:operator:/root:/sbin/nologin

/etc/postfix/main.cf:# the system passwd file in the chroot jail is just not practical.

-A 后面跟数字,过滤出符合要求的行以及下面n行.  --after

[[email protected] ~]# grep -nA2 "root" passwd

1:root:x:0:0:root:/root:/bin/bash

2-bin:x:1:1:bin:/bin:/sbin/nologin

3-daemon:x:2:2:daemon:/sbin:/sbin/nologin

--

10:operator:x:11:0:operator:/root:/sbin/nologin

11-games:x:12:100:games:/usr/games:/sbin/nologin

12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

-B 同上,过滤出符合要求的行以及上面n行.--before

[[email protected] ~]# grep -nB2 "root" passwd

1:root:x:0:0:root:/root:/bin/bash

--

8-halt:x:7:0:halt:/sbin:/sbin/halt

9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

10:operator:x:11:0:operator:/root:/sbin/nologin

-C 同上,同时过滤出符合要求的行以及上下各n行

[[email protected] ~]# grep -nC2 "root" passwd

1:root:x:0:0:root:/root:/bin/bash

2-bin:x:1:1:bin:/bin:/sbin/nologin

3-daemon:x:2:2:daemon:/sbin:/sbin/nologin

8-halt:x:7:0:halt:/sbin:/sbin/halt

9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

10:operator:x:11:0:operator:/root:/sbin/nologin

11-games:x:12:100:games:/usr/games:/sbin/nologin

12-ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

grep工具(中下)

grep实例

grep -n ‘root‘ /etc/passwd //匹配root并打印行号

grep -nv ‘nologin‘ /etc/passwd  //匹配不含有nologin,并打印行号

grep ‘[0-9]‘/etc/inittab  //匹配【】里面的任何一个都满足

grep -v ‘[0-9]‘/etc/inittab //匹配不含有【】里面的内容

grep -v ‘^#‘ /etc/inittab //匹配不以#开头的

grep -v ‘^#‘ /etc/inittab|grep -v  ‘^$‘ //匹配不以#开头,又不以$开头的

grep -n "[a-zA-Z]" passwd  //匹配含有字符集里任意一个

grep -n "[^a-zA-Z]" passwd  //匹配不含有字符集任意一个

grep -n "^[a-zA-Z]" passwd  //匹配以字母开头的

grep ‘^[^a-zA-Z]‘ test.txt  //匹配不以字符集内的内容开头

grep ‘r.o‘ test.txt  // .点代表r和o之间有任意一个字符过滤出来

grep ‘oo*‘ test.txt  //*表示重复前面一个字符0次或者多次

grep ‘.*‘ test.txt  //匹配所有

grep ‘o\{2\}‘ /etc/passwd  //重复至少2次,前面的字符。egrep可取消\

egrep ‘o{2}‘ /etc/passwd

egrep "(oo){2}" passwd  //表示重复至少2次()里面的是组合

egrep ‘o+‘ /etc/passwd  //+匹配一个或多个前面的字符

egrep ‘oo?‘ /etc/passwd  //?匹配前面一个字符0次或者1次(有或者没有)

egrep ‘root|nologin‘ /etc/passwd  //匹配含有root或者nologin的

[[email protected] ~]# grep ‘a*‘ grep01.txt  //*前面加一个字符是没有意义的

a

aa

aaa

dd

时间: 2024-08-01 00:12:52

正则、grep工具的相关文章

shell脚本--grep工具

grep工具 shell命令行之所以便捷和它所支持的工具是离不开的,其中grep工具就是一个搜索神器,它可以搜索整个linux系统所有文件中的所有信息. grep的灵活使用离不开正则表达式 正则表达式是一种查找以及字符串替换操作,它只是一个字符串,没有长度的限制,但是一般却表较短.可以被认为是一种轻量级.简介.使用与特定领域的编程语言. 这里主要使用grep工具 grep工具一般用来做两件事,搜索文件和搜索指定字符串 grep常用命令 -a 不要忽略二进制数据. -b 在显示符合范本样式的那一行

9.1-9.3 grep工具

grep工具 grep是什么 grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被送到屏幕,不影响原文件内容. 选项和语法 语法 语法: grep  [-cinvABC]  'word'  fi

centos 下grep工具学习记录

一.grep工具快速查找表 grep标准正则相关元字符表示及其的含义: 形式 说明 . 这是一个英文的点号.表示匹配任意单个字符: [] 表示匹配指定范围内的任意单个字符: [^] 表示匹配指定范围外的任意单个字符: * 表示匹配前面的条目0次或多次: .* 表示匹配任意长度的任意字符: \? 表示匹配前边的条目至多一次,既 0次或1次: \+ 表示匹配前边的条目1次或多次: \{n\} 表示匹配前边的条目n次,多于n次,少于n次都不可行: \{n,\} 表示匹配前边的条目n次或n次以上,既大于

正则表达式-grep工具常见选项的使用

正则表达式:就是规定一些语法表示字符类.数量限定符.和位置限定符关系,再和普通字符共同来表示一个模式,用某种模式来匹配一类字符串,许多程序设计语言都支持正则表达式匹配 一个正则表达式的三个要素和一些特殊字符 先了解一下grep工具: grep:文本过滤工具.它能使用正则表达式搜索文本,并把匹配的行打印出来.正则表达式在grep中用来查找符合模式的字符串,grep找的是包含某个模式的行. egrep相当于grep -E,表示采用Extended正则表达式语法. grep的正则表达式有Basic和E

Linux:正则表达式及:grep工具

什么是正则表达式: 正则表达式就是处理字符串的方法,他是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某种特定字符串的处理程序,其实就像相当与添加位置限定符,数量限定符,字符想定符来进行范围缩减匹配. 2.grep工具: 首先grep就是一个查找工具,然后通过正则表达式完成字符串的搜索. 存在3种限定符: 首先是字符限定符: 数量限定符: 位置限定符: 其他限定符: 是grep正则表达式的Extended规范,Basic规范也有这些语法,只

grep工具的使用与正则表达式

grep:(Global search REgular expression and Print out the line.) grep是Linux的文本内容搜索工具,对于给定的文档,以行为单位,根据匹配条件对文本内容逐行匹配,匹配的条件小到单个字符大到整行,搜索时以指定的模式匹配字符串表达的内容为单位,这里提到的单位有字符串长度的意义,以这个字符串作为一个完整的单元从前至后匹配行中的内容,当在行中匹配到符合条件的内容后默认是将该行的予以显示,而不是匹配到的字符串,搜索时要求给定的搜索条件,即模

正则 :grep 工具的正则表达式

             正则: .正则就是一串有规律的字符串 .正则对编写shell脚本有很大帮助 .各种编程语言中都有正则 正则工具:grep/egrep(egrep是grep的扩展).sed.awk                grep (过滤关键词)  格式: grep [-cinvABC] 'word' filename   (1)-c 行数   (2)-i 不区分大小写  (3)-n 显示行号  (4)-v 取反(过滤出不是关键字外的行)  (5)-r 遍历所有子目录  (6)-A

Linux CentOS7 VMware正则介绍、grep工具、egrep表达式

一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式的文本内容.正则表达式贯穿到整个运维日常,无论是查找某个文件,还是查询某个日志文件并分析其内容均用到. 正则表达式是一种思想,一种表示方法.常用的工具grep.sed.awk三剑客. 二.grep上 grep全称是Global Regular Expression Print,表示全局正则表达式版本

iOS 中的正则匹配(工具类)

正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对字符串的一种过滤逻辑, 正则表达式就是用于描述这些规则的工具, 或者说, 正则表达式就是记录文本规则的代码. 在开发中, 我们经常会有查找符合某些复杂规则的字符串的需要, 比如数据校验: 判断用户的输入是否合法(如:用户注册的时候,QQ号码,电话号码,邮箱是否符合要求) 下面让我们先来看看正则匹配常用的一些字