1. awk脚本结构
awk ' BEGIN{statements } statements2 END{ statements } '
2. 工作方式
1) 执行begin中语句块;
2) 从文件或stdin中读入一行,然后执行statements2,重复这个过程,直到文件全部被读取完毕;
3) 执行end语句块;
特殊变量:NR NF $0 $1 $2
NR:表示记录数量,在执行过程中对应当前行号;
NF:表示字段数量,在执行过程中对应当前行的字段数;
$0:这个变量包含执行过程中当前行的文本内容;
$1:第一个字段的文本内容;
$2:第二个字段的文本内容;
例:
打印每一行的第二和第三个字段
awk '{print $2,$3}' file
统计文件的行数
awk ' END {printNR}' file
主要用于文本搜索,它能使用正则表达式搜索文本,并把匹配的行打印出来。
常用的一些参数如下:
-i : 搜索时候忽略大小写
-v: 反转匹配,选择没有被匹配到的内容。
-w:匹配整词,精确到单词,单词的两边必须是非字符符号(即不能是字母数字或下划线)-x:仅选择与整行完全匹配的匹配项。精确匹配整行内容(包括行首行尾那些看不到的空格内容都要完全匹配)
-A num:匹配到搜索到的行以及该行下面的num行
-B num:匹配到搜索到的行以及该行上面的num行
-C num:匹配到搜索到的行以及上下各num行
重定向输入输出
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
command > /dev/null/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃

grep -B 1 'part' example.txt |grep -v 'part' > result.txt
grep 'time' example.txt | awk '{sum+=$2} END {print sum}'
date>>log.txt
while true
do
adb shell top -b -n 1|grep demo1 |awk '{print $9}'>> log1.txt
adb shell dumpsys meminfo demo2|grep "TOTAL"|awk '{print $2}'|sed -n '2p' >> log2.txt
sleep 1
done
date>>log.txt
本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。