awk是一个优良的文本处理工具,Linux及UNIX环境中现有的功能最强大的数据处理引擎之一,以Aho、Weinberger、Kernighan三位发明者名字首字母命名为awk。awk是一个行级文本高效处理工具,
awk基本原理是逐行处理文件中的数据,查找与命令行中所给定内容相匹配的模式,如果发现匹配内容,则进行下一个编程步骤,如果找不到匹配内容,则继续处理下一行。其格式为:
awk ‘pattern + {action}’ file
**
awk常用参数、变量、函数详解
**
1)awk基本语法参数详解:
• 单引号’'是为了和shell命令区分开。
• 大括号{}表示一个命令分组。
• pattern是一个过滤器,表示匹配pattern条件的行才进行action处理
• action是处理动作,常见动作为print
• 使用#作为注释,pattern和action可以只有其一,但不能两者都没有
2)awk内置变量详解:
• FS:分隔符,默认是空格
• OFS:输出分隔符
• NR:当前行数,从1开始
• NF:当前记录字段个数
• $0:当前记录
• $1~$n:当前记录第n个字段(列)
3)awk内置函数详解:
• gsub(r,s):在$0中用s代替r
• index(s,t):返回s中t的第一个位置
• length(s):s的长度
• match(s,r):s是否匹配r
• split(s,a,fs):在fs上将s分成序列a
• substr(s,p):返回s从p开始的子串
4)awk常用操作符、运算符及判断符,详解:
• ++--:增加与减少(前置或后置)
• ^∗∗:指数(右结合性)
• !+-:非、一元(unary)加号、一元减号
• +-∗/%:加、减、乘、除、余数
• ===!==:数字比较
• &&:逻辑and
• ||:逻辑or
• =+=-=∗=/=%=^=∗∗=:赋值。
5)awk与流程控制语句:
• if(condition){}else{};
• while{};
• do{}while(condition);
• for(init;condition;step){};
• break/continue