AIX上awk语言的输出函数printf

AIX下awk语言的输出函数printf

输出函数printf:printf([format_control_flg],arg)
printf修饰符
——————————————————————————————————————————————————
-		左对齐
Width		域的步长,0表示0步长
.prec		最大字符串长度,或小数点左边的位数
——————————————————————————————————————————————————

printf格式
————————————————————————————————————————————————————
%c		ASCII字符
%d		整数
%e		浮点数,科学计数法,如:12.3×10e4
%f		浮点数,如:123.45
%g		awk决定使用哪种浮点数转换e或者f
%o		八进制数
%s		字符串
%x		十六进制
————————————————————————————————————————————————————
1.字符转换
echo "65" | awk '{printf "%c\n",$0}'
A
awk 'BEGIN{ printf "%c %c %c %c %c#%c\n",92,93,94,95,96,97}'
\ ] ^ _ `#a
awk 'BEGIN{printf "%f\n",0}'
0.000000
awk 'BEGIN{printf "%f\n",1.0215}'
1.021500

2.格式化输出
逐行打印格式化数据:
awk '{printf "%-15s %s\n",$1,$3}' grade.txt
M.Tansley       48311
J.Lulu          48317
P.Bunny         48
J.Troll         4842
L.Tansley       4712
awk 'BEGIN{printf "Name \t\tS.Number\n"}{printf "%-15s %s\n",$1,$3}' grade.txt
Name            S.Number
M.Tansley       48311
J.Lulu          48317
P.Bunny         48
J.Troll         4842
L.Tansley       4712

3.向一行awk命令传值
awk 命令变量 = 输入值
awk '{if ($5<AGE) print $0}' AGE=10 grade.txt
M.Tansley  05/99  48311  Green    8    40   44
J.Lulu     06/99  48317  green    9    24   26

字符串屏蔽序列
—————————————————————————————
\b	退格键
\f	走纸换页
\n	换行
\r	回车键
\r	tab键
\ddd	八进制
\c	任意其他字符
—————————————————————————————
awk 'BEGIN{print "May\tDay\n\nMay \104\141\171"}'
May     Day

May Day
\104:D的八进制ASCII码
\141:a的八进制ASCII码
\171:y的八进制ASCII码

--the end--