文本处理命令系列——grep的扩展用法

正则表达式分为基本的正则表达式和扩展的正则表达式。

通常情况下,grep使用的是基本的正则表达式,如果要使用扩展的正则表达式,可以用-E选项,等同于egrep

grep的其他一些选项:

-A n:显示匹配行后面的n行,(after)。

-B n:显示匹配行前面的n行,(before)。

-C n:显示前后各n行。(context)

示例1:

[[email protected] tmp]# grep --color -A 1 ‘^cpu MHz‘ /proc/cpuinfo
cpu MHz         : 2392.390
cache size      : 3072 KB
[[email protected] tmp]#
[[email protected] tmp]# grep --color -A 1 -B 2 ‘^cpu MHz‘ /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
stepping        : 7
cpu MHz         : 2392.390
cache size      : 3072 KB
[[email protected] tmp]#
[[email protected] tmp]# grep --color -C 2 ‘^cpu MHz‘ /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
stepping        : 7
cpu MHz         : 2392.390
cache size      : 3072 KB
fpu : yes
[[email protected] tmp]#

扩展的正则表达式:

在扩展的正则表示式里面所使用的元字符和基本的正则表达式里面的元字符基本上都相同,区别主要有一下几个:

+:匹配前一个字符出现1次或多次。

{n,m}:前一个字符出现n到m次。

|:表示或。如a|b,则表示的是匹配a或b。

():表示分组,不需要使用反斜线。

[[email protected] tmp]# grep -E ‘(C|c)at‘ aa
cat
Cat
[[email protected] tmp]#

匹配1-255之间的数:

grep -E --color ‘\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b‘


[[email protected] ~]# ifconfig bond0 | grep ‘inet addr‘ | grep -E --color -o ‘(\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.\b){3}\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b‘
172.17.100.252
172.17.100.255
255.255.255.0
[[email protected] ~]#

时间: 2024-10-23 06:40:08

文本处理命令系列——grep的扩展用法的相关文章

grep的扩展用法

正则表达式分为基本的正则表达式和扩展的正则表达式. 通常情况下,grep使用的是基本的正则表达式,如果要使用扩展的正则表达式,可以用-E选项,等同于egrep grep的其他一些选项: -A n:显示匹配行后面的n行,(after). -B n:显示匹配行前面的n行,(before). -C n:显示前后各n行.(context) 示例1: [[email protected] tmp]# grep --color -A 1 '^cpu MHz' /proc/cpuinfo  cpu MHz  

文本处理命令系列——head和tail

head:查看文件的内容,默认显示的是前10行内容. tail:查看文件的内容,默认显示的是后10行内容. head和tail如果想显示指定行数的内容,可以用-n选项. 选项说明: head -n number:显示前number行的内容. head -c number-bytes:显示前面多少个字节的内容.可以使用K等单位.如head -c 5k显示前5K的内容. head -n -number:显示除了后面的number行之外的所有行. tail -n number:显示后面number行的

文本处理命令系列——uniq

uniq的作用:显示重复或忽略重复的行.等同于sort -u 常用选项: -d:只显示重复的行. -c:每一行出现的次数. -u:只显示没有重复的行 -i:忽略大小写. 示例: 显示每一个用户登录的次数 [[email protected] ~]# last | cut -d' ' -f1| grep -v '^$' | sort | uniq -c      26 reboot      74 root       1 wtmp [[email protected] ~]#

文本处理命令系列——cut

cut常用选项: -b:选择指定的字节. -d:指定字段分隔符,默认为TAB -f:指定要选择的字段.格式如下:     N:第N个字段     N-M:N到M个字段     N-:从第N个字段到最后.     -M:从第一个字段到第M个字段. 示例: 使用冒号为分隔符,获取文件/etc/passwd的第一个字段 [[email protected] ~]# head -n 2 /etc/passwd | cut -d: -f1 root bin [[email protected] ~]# 使

文本查找查找命令的grep 、egrep、fgrep用法的详解

一.学习目标 了解并能熟悉运用grep.egrep.fgrep命令. 二.学习内容 1.grep.egrep.fgrep命令的意思和用法格式 : grep:是使用基本正则表达式定义的模式来过滤文本的命令. # grep [options] PATTERN  [FILE,...] egrep  :是使用扩展正则表达式的模式来过滤文本的命令. # egrep [options] PATTERN  [FILE,...] fgrep:不支持正则表达式,是使用文字本身的意义的模式来过滤文本的命令. # f

Linux文本处理命令

正则表达式 POSIX标准将正则表达式分为两类 1.基本的正则表达式 2.扩展的正则表达式 大部分Linux应用和工具仅支持基本的正则表达式 基本正则表达式 符号 意义 * 0个或多个字符 . 匹配任意字符 ^ 行首,在[]中表示非 $ 行尾 [] 匹配字符集合 \ 转义字符 \<\> 精确匹配符号 \{n\} 匹配n次 \{n,\} 匹配至少n次 \{m,n\} 匹配m~n次 扩展正则表达式 符号 意义 ? 匹配0个或1个 + 匹配1个或多个 () 表示一个字符集合或用在expr中 | 表示

Linux文本处理命令 -- grep

简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. Unix 的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的 re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词

linux下的文本处理命令sed&amp;awk&amp;grep

Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破坏性.他不会修改文件,除非用shell重定向来保存输出结果.缺省情况下,所以的输出都被打印到屏幕上.sed 编辑器在shell脚本中非常有用,因为在shell脚本中使用像vi或emacs这类交互式编辑器,需求脚本用户精通该编辑器,而且还会导致用户对打开 的 文件做出不必的修改.如果需要执行多项编辑任

文本处理工具之一grep命令详解

grep(Globel Search Regular Expression and Printing out the line)全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep.fgrep是fast grep,不支持元字符,但是搜索速度更快.