awk 字符串函数

gsub(r,s)  在整个$0中用s替代r
gsub(r,s,t)  在整个t中s替代r
index(s,t)   返回s中字符串t的第一个位置
match(s,r)   测试s是否包含匹配r的字符串
split(s,a,fs)  在fs上将s分成序列a
sprint(fmt,exp) 返回经fmt格式化后的exp
sub(r,s)        用$0中最左边最长的字符串代替s
substr(s,p)     返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分


awk内置变量

ARGC  命令行参数个数
ARGV  命令行参数排列
ENVIRON  支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR       浏览文件的记录数
FS        设置输入域分隔符,等价于命令行-F选项
NF       浏览记录的域个数
NR        已读的记录数
OFS       输出域分隔符
ORS       输出记录分隔符
RS        控制记录分隔符


转义字符

\b   退格键
\t   tab键
\f   走纸换页
\ddd   八进制值
\n    新行
\c    任意其他特殊字符,例如\\为反斜线符号
\r    回车键


printf修饰符

%c  ASCII字符
%d  整数
%f  浮点数
%e  浮点数,科学记数法
%g  awk决定使用那种浮点数转换e或者f
%o  八进制数
%s  字符串
%x  十六进制数

#以:为分隔符,左对齐10个字符,如果不够后边补零,打印第一个域和第7个域的字符串并且换行  cat /etc/passwd | awk 'FS=":" {printf "%-10s %s\n",$1,$7}'