文本处理三剑客(一)
文本处理三剑客:grep,sed,awk
grep:文件过滤工具;
sed:stream editor 流编辑器;
awk:文本报告生成器;
正则表达式:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表达控制或通本的功能;
1.基本正则表达式:BRE
2.扩展正则表达式:ERE
grep :文本搜索工具,根据用户指定的模式对目标文件逐行进行匹配检查,并打印匹配到的行;
grep -i 忽略字符大小写
grep -v 显示不能被匹配到的行
grep -E 支持扩展正则表达式
grep -A after 过滤显示后N行
grep -B before 过滤显示前N行
grep -C 过滤显示前后N行
基本正则表达式元字符
字符匹配
1.“.”匹配任意单个字符
# grep r..t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
gentoo:x:1001:1001::/users/tentoo:/bin/bash
2.[]匹配任意范围内任意单个字符
#grep [Pp] /opt/fstab 过滤显示P或小p的行
3.[^]匹配指定范围之外的任意字符,非指定字符
例:[^abc] 任何字符,除了 a、b 或 c(否定)
#grep [^p] 非p字符之外的所有
[[:digit:]]所有数字
[[:lower:]]所有小写字母
[[:upper:]]所有大写字母
[[:alpha:]]所有字母
[[:alnum:]]所有字母和数字
[[:space:]] 所有空白字符
[[:punct:]]所有标点符号
4.“*”匹配前面字符任意次数,可是0,1,多次;.*任意长度字符
#grep r*t *代表中间可以为任意多个个字符
5.\?匹配其前面字符0次或1次,即前面字符可有可无
6.\+匹配前面字符至少1次或多次
7.\{\m}匹配前面字符m次
8.\{m,n\}匹配前面字符至少m次,至多n次
9.\{0,n\}匹配前面字符至多n次
10.\{m,\}匹配前面字符至少m次
11.^行道锚定,用模式的最左侧;
12.$行尾锚定,用于模式的最右侧;
13.^$显示空白行
14.^PATTERN$ 用PATTERN匹配整行
#^[[:space:]]$空白行或包含空白字符
15.\<或\b 左词首,\>或\b右词首
16.\<PATTERN\>匹配完整单词
分组符号
\(\)将一个或多个字符捆绑在一起,当作一个整体进行处理
例:\(xy\)*ab
浙公网安备 33010602011771号