shell之文本查找(文本匹配)、正则表达式
2017-05-01 01:14
232 查看
1
1.1 正则表达式
正则表达式时由两个部分所组成:一般字符和特殊字符。一般字符指的是“任何没有特殊意义的字符”,特殊字符常被称为”元字符
grep查找文本(用unix专用的术语是“匹配文本”),非常的方便;从传统而言,有三种程序可以用来查找整个文本文件:
grep 最早的文本匹配程序。BRE(Basic Regular Expression),使用POSIX定义的基本正则表达式。 egrep 扩展grep(Extended grep)。使用扩展正则表达式(Extended Regular Expression,ERE) fgrep 快速grep(Fast grep). 1992年时,POSIX标准将这三个版合成了一个grep程序。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 grep基本语法; grep [options...] pattern-spec [files...] 功能:显示匹配一个或多个模式的文本行。通常会作为管道(pipe)的第一步, 以便对匹配的数据作进一步处理。 主要选项 -i 模式匹配时忽略字母的大小写差异。 -l 列出匹配模式的文件名称,而不是打印匹配的行。 -e pat-list 通常,第一个非选项的参数会指定要匹配的模式。 -f pat-file 从pat-file文件中读取模式作为匹配 -s 不显示错误信息。通常与-q并用 -q 静静地。如果模式匹配,则grep会成功的离开,而不将匹配的行写入标准输出;否则即时不成功。 -v 显示不匹配模式的行。 -F 使用固定的字符串进行匹配。通常 grep -F 可以取代传统的fgrep命令。 -E 使用扩展的正则表达式进行匹配,grep -E可以取代传统的egrep 示例: /*查看a.txt的进程*/ ps -ef | grep "a.txt" /*显示所有以h开头的文件中包含 hello的行*/ grep ‘hello’ h* /*显示在aa,bb,cc文件中匹配test的行*/ grep ‘test’ aa bb cc
1.1 正则表达式
正则表达式时由两个部分所组成:一般字符和特殊字符。一般字符指的是“任何没有特殊意义的字符”,特殊字符常被称为”元字符
metacharacter“,在某些情况下,特殊字符也可以被视为”一般字符“,
POSIX BRE与ERE的meta字符 字符 BRE/EREL 模式含义 \ 两者都可 通常用以关闭后续字符的特殊意义。 . ****** 匹配任意单个字符,NUL除外 * ****** 匹配在它之前的任何数目(或没有)的单个字符。 * $ ****** 匹配前面的正则表达式,在字符串或行结尾处。 [...] ****** 方括号表达式,匹配方括号内的任一个字符。连字符(-)指的是连续字符的范围。^符号置于方括号里第一个字符则由反向的含义:指的是匹配不在列表内(方括号内)的任何字符。 \{n,m\} BRE 区间表达式,匹配在它前面的单个字符重现的次数区间。\{n\} 指的是重现n次;\{n,\}则为至少重现n次,er\{n,m\}为重现n至m次。 \( \) BRE 将\(与\)间的模式存储在特殊的“保留空间”。最多可以将9个独立的子模式储存在单个模式中。 \n BRE 重复在\(与\)方括号内第n个子模式至此点的模式。n为1~9的数字,1为由左开始。 {n,m} ERE 与先前提及BRE的\{n,m\}一样,只不过方括号的前面没有反斜杠。 + ERE 匹配前面正则表达式的一个或多个实例 ? ERE 匹配前面正则表达式的零个或一个实例 | ERE 匹配于|符号前面或后面的正则表达式 示例: ^hello 5个字母的hello,出现在一行的开头 ^hello$ 正好包括hello这5个字母的一行,没有其他任何的字符
相关文章推荐
- 正则表达式如何实现不替换查找的匹配文本?
- Java基于正则表达式实现查找匹配的文本功能【经典实例】
- 通过正则表达式查找文本 并检索出匹配正则的字符串内容
- 匹配文本中所有图片的url的一个小正则表达式
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 运行一个命令或程序获取结果/正则表达式查找匹配/分隔字符串
- PowerShell查找并返回匹配正则表达式的字符串
- bash 正则表达式匹配,一行文本中 “包含 ABC” 并且 “不包含 XYZ”
- shell之文本过滤(正则表达式)
- 关于notepad++用正则表达式查找文本汉字的分析
- 正则表达式,模式匹配(查找替换)
- JAVA正则表达式匹配,替换,查找,切割
- shell通配符与文本正则表达式学习笔记
- QT:利用正则表达式查找文本
- 正则表达式匹配多行文本的解决方法
- visual studio 正则表达式 查找与替换文本
- 【shell脚本】匹配函数的正则表达式
- SED,AWK学习笔记Part 1-----利用正则表达式进行文本匹配
- java正则表达式来替换文本中匹配正则的内容
- 匹配一个正则表达式的Shell