正则表达式
1 字符串的组合表达有重复和逻辑两种方法
2 重复
* 零次或多次匹配前面的字符或子表达式
+ 一次或多次匹配前面的字符或子表达式
? 零次或一次匹配前面的字符或子表达式
3 用法格式
grep ’字符串如se*’ 表名或文档名
4 注意1加号和问号前面一定要加斜线如’se\+’和’se\?’
5 括号和大括号加入到正则表达式中一定要加斜线如’\(se\)’*和’\{se\}’
6 重复特定次数
[n,m] n重复最小次数 m重复最大次数
7 任意字符串的表式
7.1 .* 如grep ’m.*c’ passwd 表示找出passwd中的所有以m开头c结尾的内容,包括单词和句子不论多长
7.2 而’m..c’的意思是找出所有以m开头中间只有两个单词c结尾的内容
’\bm[a-z]*c\b’与’m..c’的意思一样
8 逻辑或的表达式
| 注意逻辑或的前面一定要加斜线
如’bin/\false\|true\)’ 意思是显示所有bin或true的内容
9 案例
9.1 匹配4-10位的QQ号
grep '^[0-9]\{4,10\}$' 文件名
9.2 匹配15位或18位的身份证号(支持带x)
grep '^([1-9]\[0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$' 文件名
9.3 匹配密码,由数字、26个字母和下划线组成
grep '\W\+$' 文件名
10 使用sed可以
自动处理文件
分析日志文件
修改配置文件
11 Sed的行处理
Sed一次处理一行内容
Sed不改变文件内容,除非重定向
12 Sed的流处理编辑器
文本或管道输入到 读入一行到模式空间(模式空间即为临时缓冲区) 到 sed命令处理 最后输出到屏幕 重复读入一行到模式空间到 sed命令处理
13 Sed的文本处理:正则选定文本到 sed进行处理
14 使用sed格式
14.1 命令行格式
sed 参数 命令输入的文件 (参数有-e和-n,-e一般用于调用两个命令,-n一般用于匹配p的命令意思是打印相关的行) (命令由行定位既正则+sed命令即操作)
14.2 脚本格式
sed -f参数 脚本文件 输入的文件
本文转自 拉考的考拉 51CTO博客,原文链接:http://blog.51cto.com/lakaodekaola/1927342