文本处理三剑客之grep与正则表达式
2017-11-24 21:26
211 查看
grep什么是grep
grep: Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
grep的基础用法
格式: grep [OPTIONS] PATTERN [FILE...] --color=auto: 对匹配到的文本着色显示 -v: 显示不被pattern 匹配到的行 -i: 忽略字符大小写 -n: : 显示匹配的行号 -c: 统计匹配的行数 -o: 仅显示匹配到的字符串 -q: 静默模式,不输出任何信息 -A #: after, 后#行 -B #: before, 前#行 -C # :context, 前后各#行 -e :实现多个选项间的逻辑or 关系 例:grep –e ‘cat ’ -e ‘dog’ file -w :匹配整个单词 -E :使用ERE -F :相当于fgrep 正则表达式什么是正则表达式
正则表达式(REGEXP):由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能 程序支持 :grep,sed,awk,vim, less,nginx,varnish等 大致分两类: 基本正则表达式:BRE 扩展正则表达式:ERE
字符匹配
. 匹配任意单个字符 [ ] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和 数字 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z [:lower:] 小写字母 [:upper:] 大写字母 [:blank:] 空白字符(空格和制表符) [:space:] 水平和垂直的空白字符(比[:blank:] 包含的范围广) [:cntrl:] 不可打印的控制字符(退格、删除、警铃...) ) [:digit:] 字 十进制数字 [:xdigit:] 十六进制数字 [:graph:] 可打印的非空白字符 [:print:] 可打印字符 [:punct:] 标点符号
匹配次数:用在要指定次数的字符后面,用于指定前面的字
符要出现的次数 * 匹配 前面的字符任意次,包括0次 (贪婪模式:尽可能长的匹配) .* 任意 长度的任意字符 \? 匹配 其前面的字符0或1次 \+ 匹配 其前面的字符至少1次 \{n\} 匹配 前面的字符n次 \{m,n\} 匹配 前面的字符至少m次,至多n次 \{,n\} 匹配 前面的字符至多n次 \{n,\} 匹配 前面的字符至少n次
位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧 $ 行尾锚定,用于模式的最右侧 ^PATTERN$ 用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 \< 或 或 \b 词首锚定,用于单词模式的左侧 \> 或 或 \b 词尾锚定;用于单词模式的右侧 \<PATTERN\> 匹配整个单词
分组
\(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理,
如:\(root\)\+分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...
\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
示例:
\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
后向引用
引用前面的分组括号中的模式所匹配字符 , 而非模式本身
扩展正则表达式次数匹配
* :匹配前面字符任意次
? : 0 或1次 次
+ :1 次或多次
{m} :匹配m次 次
{m,n} :至少m ,至多n次
位置锚定
^ : 行首
$ : 行尾
\<, \b : 语首
\>, \b :
分组
分组( )
后向引用:\1, \2, ...
或者
a|b: a 或b
C|cat: C 或cat
(C|c)at:Cat 或cat
grep: Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
grep的基础用法
格式: grep [OPTIONS] PATTERN [FILE...] --color=auto: 对匹配到的文本着色显示 -v: 显示不被pattern 匹配到的行 -i: 忽略字符大小写 -n: : 显示匹配的行号 -c: 统计匹配的行数 -o: 仅显示匹配到的字符串 -q: 静默模式,不输出任何信息 -A #: after, 后#行 -B #: before, 前#行 -C # :context, 前后各#行 -e :实现多个选项间的逻辑or 关系 例:grep –e ‘cat ’ -e ‘dog’ file -w :匹配整个单词 -E :使用ERE -F :相当于fgrep 正则表达式什么是正则表达式
正则表达式(REGEXP):由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能 程序支持 :grep,sed,awk,vim, less,nginx,varnish等 大致分两类: 基本正则表达式:BRE 扩展正则表达式:ERE
字符匹配
. 匹配任意单个字符 [ ] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和 数字 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z [:lower:] 小写字母 [:upper:] 大写字母 [:blank:] 空白字符(空格和制表符) [:space:] 水平和垂直的空白字符(比[:blank:] 包含的范围广) [:cntrl:] 不可打印的控制字符(退格、删除、警铃...) ) [:digit:] 字 十进制数字 [:xdigit:] 十六进制数字 [:graph:] 可打印的非空白字符 [:print:] 可打印字符 [:punct:] 标点符号
匹配次数:用在要指定次数的字符后面,用于指定前面的字
符要出现的次数 * 匹配 前面的字符任意次,包括0次 (贪婪模式:尽可能长的匹配) .* 任意 长度的任意字符 \? 匹配 其前面的字符0或1次 \+ 匹配 其前面的字符至少1次 \{n\} 匹配 前面的字符n次 \{m,n\} 匹配 前面的字符至少m次,至多n次 \{,n\} 匹配 前面的字符至多n次 \{n,\} 匹配 前面的字符至少n次
位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧 $ 行尾锚定,用于模式的最右侧 ^PATTERN$ 用于模式匹配整行 ^$ 空行 ^[[:space:]]*$ 空白行 \< 或 或 \b 词首锚定,用于单词模式的左侧 \> 或 或 \b 词尾锚定;用于单词模式的右侧 \<PATTERN\> 匹配整个单词
分组
\(\) 将一个或多个字符捆绑在一起,当作一个整体进行处理,
如:\(root\)\+分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2, \3, ...
\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
示例:
\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
后向引用
引用前面的分组括号中的模式所匹配字符 , 而非模式本身
扩展正则表达式次数匹配
* :匹配前面字符任意次
? : 0 或1次 次
+ :1 次或多次
{m} :匹配m次 次
{m,n} :至少m ,至多n次
位置锚定
^ : 行首
$ : 行尾
\<, \b : 语首
\>, \b :
分组
分组( )
后向引用:\1, \2, ...
或者
a|b: a 或b
C|cat: C 或cat
(C|c)at:Cat 或cat
相关文章推荐
- 文本处理三剑客--grep笔记以及正则表达式
- linux文本处理三剑客之grep家族及其相应的正则表达式使用详解
- 文本处理三剑客之grep&正则表达式
- 文本处理三剑客之grep(包括常用正则表达式)
- Linux文本处理三剑客之grep及正则表达式
- Linux文本处理三剑客之grep一族与正则表达式
- Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式
- Linux---文本处理(正则表达式,grep,awk,sed)
- Linux高级文本处理之正则表达式与grep
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
- 文本处理之正则表达式和grep
- 文本三剑客之使用正则表达式的grep实例
- 文本过滤之grep,egreo及fgrep 三剑客及正则表达式
- 字符及文本处理之二:grep及正则表达式详解
- llinux文本三剑客之grep、egrep及相应的正则表达式和用法
- 关于 文本处理工具、正则表达式、grep 的简单举例
- 【Linux相识相知】文本处理工具之grep\egrep\fgrep及正则表达式
- Linux 文本处理工具、grep、正则表达式
- Linux的文本处理工具及grep正则表达式的使用
- 基本正则表达式和文本处理工具之grep、egrep和fgrep