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}' 

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码 

相关内容