Grep:搜索文件内匹配指定内容的行
常用的Grep搜索方法:
1. grep "普通搜索内容" file( 或者 cat file|grep "普通搜索内容")
- grep 'java' file : 查询带java的行
- grep -c 'java' file :计算带-c的行数
- grep -n 'java' file: 查询结果中显示行数
- grep -i 'java' file :忽略大小写搜索
- grep -v 'java' file : 过滤掉涵盖java内容的行
- grep -ivn 'java' file: 多种参数可以结合使用
2. grep -E "正则表达式" file
- ^content : 以content开头的行
- $content : 以content结尾的行
- . : 匹配任意单字符
- .+ : 匹配任意多个字符
- .* :匹配0或多个字符
- [0-9a-z]:匹配任意数字字母
- (linux)+: 匹配多次出现linux单词的行
- (linux){2}: 匹配linux单词出现了2次的行
- (linux){2,4}: 匹配linux单词出现了3次的行
- (linux){2,}:匹配linux单词出现了2次以上的行
- (.*linux.*){2}: 匹配涵盖2个linux字符的单词的行
- : 转义符
实际例子:
grep -E "09:[0-5][0-9]:[0-5][0-9]" file: 查询出09:00:00到09:59:59之间的日志
grep -Eni '(.+center.+){6}' TestSummaryReport.html: 解析Html里含盖6个center的行(通过识别布局元素找到指定的行来进一步解析html内容)
awk 用于横向分割获取内容
awk '{print $0}' file: 查找出文件中的每一列,$0代表每一列
awk '{print $1" "$7}' file: 查找出文件中的第一列和第七列,并且之间用制表符分割
awk -F: '{print $1,$3,$4}' file: 以:为分隔符打印出第1,3,4列,并且列之间用空格分割
awk -F'<td align="center">' '{print $4}' test.html :以<td align="center">为分隔符打印出第4列内容(可用来进行网页解析),-F后面加上'XX'表示以XX作为分隔符.