Linux文本处理三剑客
-
grep:文本过滤(模式:psttern)工具
grep,egrep,fgrep (不支持正则表达式搜索)
-
sed:stream editor,文本编辑工具
-
awk:Linux上的实现gawk,文本报告生成器
下面就先谈一谈:grep及正则表达式;egrep及扩展的正则表达式
grep
-
grep:Goobal search REgular expression and Print out the line
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行
模式:用正则表达式字符及文本字符所编写的过滤条件
grep命令选项
- –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:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能
基本正则表达式元字符
元字符 | 定义 |
---|---|
^ | 位置锚定:行首 |
$ | 位置锚定:行尾 |
. | 任意单一字符 |
[ ] | [ ]内任意单一字符 |
[^] | 除[ ]内任意单一字符 |
* | *前面字符重复不确定次数 |
+ | +前面字符重复一次以上不确定次数 |
? | ?前面字符重复0或1次 |
\ | 转义符 |
.* | 任意长度字符 |
{n} | 前面字符重复n次 |
{n,} | 前面字符重复n次以上 |
{m,n} | 前面字符重复m次和n次之间 |
[:alnum:] | 字母和数字 |
[:alpha:] | 代表任何英文大小写字符,亦即A-Z,a-z |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:blank:] | 水平空白字符(空格和制表符) |
[:space:] | 所有水平和垂直的空白字符(比[:blank:]包含的范围广) |
[:cntrl:] | 不可打印的控制字符(退格,删除,警铃…) |
[:digit:] | 十进制数字 |
[:graph:] | 可打印的非空白字符 |
[:print:] | 可打印字符 |
[:punct:] | 标点符号 |
[:xdigit:] | 十六进制数字 |
egrep
- egrep = grep -E
- egrep [OPTIONS] PATTERN [FILE…]
扩展的正则表达式的元字符
元字符 | 定义 |
---|---|
. | 任意单个字符 |
[ ] | 指定范围的字符 |
[^] | 不在指定范围的字符 |
* | 匹配前面字符任意次 |
? | 0或1次 |
+ | 1次或多次 |
{m} | 匹配m次 |
{m,n} | 匹配至少m次,之多n次 |
^ | 位置锚定:行首 |
$ | 位置锚定:行尾 |
<,\b | 位置锚定:词首 |
>,\b | 位置锚定:词尾 |
( ) | 分组 |
\1,\2 | 后向引用 |
学之前是拒绝的,学之后是懵逼的。
原创文章,作者:XIAJIDONG,如若转载,请注明出处:http://www.178linux.com/72678
评论列表(1条)
详细介绍了正则表达式的知识点,内容写的很不错,排版也很好