输出函数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码