AWK
2018-11-13 本文已影响0人
空语
1.基本用法
awk 动作 文件
awk '{print $0}' demo.txt
demo.txt 为需要处理的文件 动作为需要执行的语句或命令
+数字 表示 分别表示为 $1, $2, $3
$ echo “this is php” | awk '{print $1}'
this
$ echo “this is php” | awk '{print $3}'
php
也可自定义分隔符 使用 -F 参数
$ echo "is:11" |awk -F ":" '{print $1}'
使用 /etc/passwd 文件为例
$ cp /etc/passwd test.log //copy到当前目录分析
$ awk -F ":" '{print $3}' test.log
/var/db/findmydevice
/var/db/datadetectors
/var/empty
/var/empty
/var/db/applepay
/var/db/hidd
/var/db/cmiodalassistants
/var/db/analyticsd
/var/db/fpsd
/var/db/timed
/var/db/reportmemoryexception
2.使用匹配
awk '正则表达式 {shell语句}' 文件
$ awk -F ":" '\_a\ {print $0}' test.log
3.使用IF
$ awk -F ":" '{if($1 > 3) print $1;else print "not this"}' test.log
4.判断
awk '条件 动作' 文件名
$ awk '$1 > 3 {print $1}' t.log
$ awk '$1 >3 || $2 < 100 {print $0}' t.log
5.动作分块
awk 'BEGIN{动作1} {动作2} END{动作3}' 文件
动作1 在处理所有行前执行 执行一次
动作2 每行执行一次
动作3 当处理完所有行后 最后执行 执行一次
//统计行数
awk 'BEGIN{i=0} {i++} END{print "all count is",i}' t.log