awk 用于处理文本
awk操作符
awk数组
awk -F ":" '{print $2}' a.txt :查询a.txt文件内容中,第二域(列)的数据;
awk -F ":" '{print NR}' a.txt :查询a.txt文件中数据的记录条数(行数);
awk 'BEGIN{FS=":";total=0}{print $1;total=total+1;} END{print total}' a.txt:先输出a.txt文件里面第一域的数据,然后再输出total的值,因为BODY块,执行了四次,所以total = 4;
AWK操作符
awk 'BEGIN{a = 10;b = 10; if (a==b) print 'a==b'}' a.txt:如果a等于b,那么输出1,如果b改为20,则没有输出;
awk -F ":" 'NR == FNR {a[$1] = 1} NR>FNR{if(!($1 in a)) } {print $1}' a.txt b.txt:解析:查询数据,以“:”为分隔符的数据,《NR是文件的记录数,如果有多个文件,则记录数是递增的》《FNR是每个文件的记录数,如果有多个文件,则记录数是按照各个文件的记录数来算的,例如a.txt(5条)文件记录完了,准备记录b.txt(10条),此时NR = 6,FNR=1》当NR == FNR时,证明此时正在记录a.txt的文本,每循环记录一次,把1输入到a数组第一列,当NR>FNR时,证明此时准备记录b.txt的文本,当b.txt里面第一列有内容在数组a里面,则不打印(取反)!(好难哦!不知道对不对?)
AWK 内置变量
AWK 简介
Awk程序结构
BEGIN块:程序开始的时候执行,只执行一次;
BODY块:会循环针对每一行执行命令;
END块:程序最后执行;
Awk内置变量
NR:已输入记录条数;
NF:当前记录域的个数;
FS:域分隔符;
RS:当前记录分隔符;
OFS:输出域分隔符;
ORS:输出记录分隔符;
OFMT:输出数字格式;
Awk简介
AWK(Alfred Aho,Peter Weinberger,和Brian Kernighan);
样式扫描和处理余元,用于文本处理;
AWK,NAWK,GAWK;