awk是一个优良的文本处理工具,Linux及UNIX环境中现有的功能最强大的数据处理引擎之一,以Aho、Weinberger、Kernighan三位发明者名字首字母命名为awk,awk是一个行级文本高效处理工具,awk经过改进生成的新的版本有nawk、gawk,一般Linux默认为gawk,gawk是awk的GNU开源免费版本。
awk基本原理是逐行处理文件中的数据,查找与命令行中所给定内容相匹配的模式,如果发现匹配内容,则进行下一个编程步骤,如果找不到匹配内容,则继续处理下一行。
(1)awk基本语法参数详解如下:
1.单引号’'是为了和shell命令区分开;
2.大括号{}表示一个命令分组;
3.pattern是一个过滤器,表示匹配pattern条件的行才进行action处理;
4.action是处理动作,常见动作为print;
5.使用#作为注释,pattern和action可以只有其一,但不能两者都没有。
(2)awk内置变量详解如下:
1.FS:分隔符,默认是空格;
2.OFS:输出分隔符;
3.NR:当前行数,从1开始;
4.NF:当前记录字段个数;
5.$0:当前记录;
6.$1~$n:当前记录第n个字段(列)。
(3)awk内置函数详解如下:
1.gsub(r,s):在$0中用s代替r;
2.index(s,t):返回s中t的第一个位置;
3.length(s):s的长度;
4.match(s,r):s是否匹配r;
5.split(s,a,fs):在fs上将s分成序列a;
6.substr(s,p):返回s从p开始的子串。