文本三剑客之grep

简述grep

grep:

作用:文本搜索工具,根据用户制定的“(过滤模式)” 对目标文本逐行进行匹配检查;打印匹配的行;

模式:由正则表达式的元字符及文本字符所编写出的过滤条件;

grep [选项] PATTERN  [FILE]

常用选项:

–color=auto              #自动对匹配到的文本加颜色,默认红色

-i     #ignorecase,忽略字符大小写;

-o    #仅显示匹配到的字符串本身

-v    #反向匹配,显示不能被模式匹配到的行

-E    #支持使用扩展的正则表达式

-q    #静默模式,既不输出任何信息

#号表示数字

-A  #                 #  后#行

-B  #                #   前#行

-C  #                #    前后各#行

基本正则表达式元字符

字符匹配:

.  :匹配任意单个字符

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

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

[:digit:] 、[:lower:]、[:upper:]、[:alpha:]、[:alnuml:]、[:punct:]、 . . .

匹配次数:用在要指定其出现的次数的字符后面,用于限制其前面字符出现的次数;默认工作在贪婪模式

*:匹配前面的字符任意次,0,1,  多次;

例如: grep “x*y”

abxy

aby

xxxxxy

yab

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

\?:匹配其前面的字符0次或1次

\+:匹配其前面的字符1次或多次;前面的字符要出现至少一次;

\{m\}:匹配其前面的字符m次;m表示数字;

\{m,n}:匹配其前面的字符至少m次,至多n次;

\{0,n}:至多n次

\{m,\}:至少m次

位置锚定:

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

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

^PATTERN$:用PATTERN匹配整行;

^$:  空白行

^[[:space:]]*$:空行或包含空白字符的行;

单词:非特殊字符组成的连续字符串都成为单词;

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

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

\<PATTERN\>:精确锚定单词;

分组及引用:

\(\):将一个或多个字符捆绑在一起,当做一个整体进行处理;

\(xy\)*ab

分组括号中的模式匹配到的内容会被正则表达式引擎自动记录与内部的变量中,这些变量为:

\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符:

\2

\3

He loves his lover
He likes his lover
She likes her liker
She loves her liker

[ root@centos7~]# grep “\(l..e\).*\1” test.txt
# 后向引用:引用前面的分组括号中的模式所匹配到的字符;

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96657

(1)
会飞的蜗牛会飞的蜗牛
上一篇 2018-04-20 18:39
下一篇 2018-04-20 19:54

相关推荐

  • 文件管理基础知识

                   文件管理 目录篇 / :根目录 bin    boot    dev    etc    home    root    run     sbin    tmp    usr   var 字符界面颜色的意义: 蓝色=目录、绿色=可执行文件、红色=压缩文件、浅蓝色=链接文件 灰色=其他文件 boot:引导文件的存放目录  bin:…

    Linux笔记 2018-04-08
  • 进程管理 计划任务管理

    进程管理 计划任务管理

    2018-05-03
  • 如何在Linux系统上获取命令的帮助信息

    (1)首先用type命令,来判断需要获取帮助的命令是内部命令,还是外部命令。 内部命令:help空格command   按q键退出 (2) 外部命令: 命令自带简要格式的使用帮助 Command –help例如ls –help ①NAME 命令的功能性简要说明 ②SYNOPSIS 简要使用语法格式 【】:可选内容。 <>:…

    2018-06-27
  • Linux上的文件管理类命令

    常用的文件目录管理命令:cd,pwd,ls,mkdir,rmdir,tree,more,less,head,tail,cp,mv,rm。 cd命令:改变目录 后面加绝对或者相对路径 命令格式:cd [options] [Dirname] [Azuth@azuth ~]$ cd /home/Azuth[Azuth@azuth ~]$ pwd/home/Azut…

    Linux笔记 2018-05-20
  • sed的高级用法,rpm .yum的使用以及磁盘存储和文件系统

    sed的高级用法 和 包管理器(rpm , yum )

    Linux笔记 2018-04-19
  • 正则表达式

    grep命令: 文本过滤(按行过滤) 参数   -v 取反 -i 忽略大小写 -n 显示行号 -c 统计匹配行数 -q 静默执行(不显示执行结果) -o 仅显示搜索到的字符串 -A #(数字) 包含关键字的后续几行 -B #(数字) 包含关键字的前面几行 -C #(数字) 包含关键字的前后几行 -w 匹配整个单词 -E 相当于fgrep 正则表达式 REGE…

    Linux笔记 2018-03-30