首页 / 操作系统 / Linux / 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
",$0}"
A
awk "BEGIN{ printf "%c %c %c %c %c#%c
",92,93,94,95,96,97}"
] ^ _ `#a
awk "BEGIN{printf "%f
",0}"
0.000000
awk "BEGIN{printf "%f
",1.0215}"
1.021500
2.格式化输出
逐行打印格式化数据:
awk "{printf "%-15s %s
",$1,$3}" grade.txt
M.Tansley 48311
J.Lulu 48317
P.Bunny 48
J.Troll 4842
L.Tansley 4712
awk "BEGIN{printf "Name S.Number
"}{printf "%-15s %s
",$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 字符串屏蔽序列
—————————————————————————————
退格键
f 走纸换页
换行
回车键
tab键
ddd 八进制
c 任意其他字符
—————————————————————————————
awk "BEGIN{print "May Day
May 104141171"}"
May Day
May Day
104:D的八进制ASCII码
141:a的八进制ASCII码
171:y的八进制ASCII码