正则表达式 grep egrep fgrep的用法

时间:2021-09-22 08:55:24
正则表达式 grep egrep fgrep的用法 正则表达式分为:1 基本正则表达式:Basic  REGEXP 2 扩展正则表达式 : Extended   REGEXP,grep:根据模式,搜索文本,并将符合模式的文本行显示出来
Pattern:文本字符和正规表达式的元字符组合而成匹配条件

基本正则表达式的一些用法

grep简介:

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户

----------------------------------------------------------------------------------------------

基本命令

[options]主要参数:

-c:只输出匹配行的数量。

-i:不区分大 小写(只适用于单字符)。忽略大小写

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:列出所有的匹配行及 行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

-w:匹配整词  

-x:匹配整行

-r:递归搜索,不仅搜索当前工作目录,而且搜索子目录

-q:禁止输入任何结果,以退出状态表示搜索是否成功

-b:打印匹配行距文件头部的偏移量,以字节为单位

-E:支持扩展的正则表达式

-F:不支持正则表达式,按照字符串的字面意思进行匹配

pattern正则表达式主要参数:

\: 忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

\<:从匹配正则表达 式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的单个字符。

* :有字符,长度可以为0。

查询多位数字的时候

egrep -o [1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]+[1-9]

awk显示五个数字的

awk '{if(length($0) ==5)print;}'

###################################################################################

例子:

 1、显示/proc/meminfo文件中以不区分大小的s开头的行;
grep -i '^s' /proc/meminfo
           grep '^[sS]' /proc/meminfo

2、显示/etc/passwd中以nologin结尾的行;
grep 'nologin$' /etc/passwd
       取出默认shell为/sbin/nologin的用户列表
grep "nologin$' /etc/passwd | cut -d: -f1
       取出默认shell为bash,且其用户ID号最小的用户的用户名
grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
grep ':[0-9]:' /etc/inittab
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
grep '^\([0-9]\).*\1$' /etc/inittab
学会了正则表达式和锚定对我们的帮助大大的哦

本文出自 “飞天鹰-----血杀组” 博客,请务必保留此出处http://749806593.blog.51cto.com/6662384/1150633