awk

ctrl+b/ctrl f  光标左/右

AWK:

man awk

 

 

 

 

一、内置变量:

print 打印;$0 全部:awk '{print $0}' student2.txt 

$2 第二列(例:某些列不规则时):awk '{print $2}' student2.txt

NF 每行有多少列:awk '{print NF}' student2.txt
4
4
$NF 最后一列(如:不知有多少列用):awk '{print $NF}' student2.txt
$(NF-1) 倒数第二列:awk '{print $(NF-1)}' student2.txt 

NR 多少行:awk '{print NR}' student2.txt

 $NR 第一行的第一个+第二行的二个...:awk '{print $NR}' student2.txt

BEGIN{FS=":"} 以“:”分割取第一列:awk 'BEGIN{FS=":"} {print $1}' /etc/passwd

                                                             awk 'BEGIN{FS=":"} {print $NF}' /etc/passwd

二、符号

简化:awk -F: '{print $1}' /etc/passwd

以“:”分割取第一列和最后一列:awk -F":" '{print $1,$NF}' /etc/passwd

%s-字符串 %d-数字 %f-浮点

printf "%s\t%s\n", \n加换行,\t制表符:awk -F: '{printf "%s\t%s\n", $1,$NF}' /etc/passwd

-代表左,默认为右:awk -F":" '{printf "%-20s\t%-20s\n", $1,$NF}' /etc/passwd

awk -F: '{printf "%-20s%d\n", $1,$3}' /etc/passwd

%.2f:保留两位小数

awk -F":" 'BEGIN{printf "%-20s%-10s\n","username","bash"} {printf "%-20s%-10s\n", $1,$NF}' /etc/passwd

 

BEGIN{} {} END{}自定义参数COUNT: 

awk -F: 'BEGIN{printf "%-20s\t%-20s\n","username","bash"} {printf "%-20s\t%-20s\n",$1,$NF;COUNT++} END{printf "%-20s\n",COUNT}' /etc/pass

 

 支持正则:

 关系运算:

 

 列中的数进行比较:

1)

2)

 3)~ “m”

 

 

 

练习:

一:取出日志中人员为yang的个数(先选出人员列,再筛选出yang)

 

 加if判断:

 

二:.awk文件(重点)

 名字为yang的人执行xx次:

 

 统计所有用户执行xx次数:

 

 

统计每位tester的pass总数和fail总数 

 

posted @ 2021-07-31 10:53  zxy_ang  阅读(51)  评论(0)    收藏  举报