Linux基础:Grep查询&AWK查询

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作为分隔符.

原文地址:https://www.cnblogs.com/vivian-test/p/5398359.html