您的位置:首页 > 大数据 > 人工智能

AIX下awk语言的输出函数printf

2012-11-25 21:28 465 查看
输出函数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--
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: