shell 中的printf用法

  1. 输出函数printf:printf([format_control_flg],arg)  
  2. printf修饰符  
  3. ——————————————————————————————————————————————————  
  4. -       左对齐  
  5. Width       域的步长,0表示0步长  
  6. .prec       最大字符串长度,或小数点左边的位数  
  7. ——————————————————————————————————————————————————  
  8.   
  9. printf格式  
  10. ————————————————————————————————————————————————————  
  11. %c      ASCII字符  
  12. %d      整数  
  13. %e      浮点数,科学计数法,如:12.3×10e4  
  14. %f      浮点数,如:123.45  
  15. %g      awk决定使用哪种浮点数转换e或者f  
  16. %o      八进制数  
  17. %s      字符串  
  18. %x      十六进制  
  19. ————————————————————————————————————————————————————  
  20. 1.字符转换  
  21. echo "65" | awk '{printf "%c\n",$0}'  
  22. A  
  23. awk 'BEGIN{ printf "%c %c %c %c %c#%c\n",92,93,94,95,96,97}'  
  24. \ ] ^ _ `#a  
  25. awk 'BEGIN{printf "%f\n",0}'  
  26. 0.000000  
  27. awk 'BEGIN{printf "%f\n",1.0215}'  
  28. 1.021500  
  29.   
  30. 2.格式化输出  
  31. 逐行打印格式化数据:  
  32. awk '{printf "%-15s %s\n",$1,$3}' grade.txt  
  33. M.Tansley       48311  
  34. J.Lulu          48317  
  35. P.Bunny         48  
  36. J.Troll         4842  
  37. L.Tansley       4712  
  38. awk 'BEGIN{printf "Name \t\tS.Number\n"}{printf "%-15s %s\n",$1,$3}' grade.txt  
  39. Name            S.Number  
  40. M.Tansley       48311  
  41. J.Lulu          48317  
  42. P.Bunny         48  
  43. J.Troll         4842  
  44. L.Tansley       4712  
  45.   
  46. 3.向一行awk命令传值  
  47. awk 命令变量 = 输入值  
  48. awk '{if ($5<AGE) print $0}' AGE=10 grade.txt  
  49. M.Tansley  05/99  48311  Green    8    40   44  
  50. J.Lulu     06/99  48317  green    9    24   26  
输出函数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
字符串屏蔽序列  
  1. —————————————————————————————  
  2. \b  退格键  
  3. \f  走纸换页  
  4. \n  换行  
  5. \r  回车键  
  6. \r  tab键  
  7. \ddd    八进制  
  8. \c  任意其他字符  
  9. —————————————————————————————  
  10. awk 'BEGIN{print "May\tDay\n\nMay \104\141\171"}'  
  11. May     Day  
  12.   
  13. May Day  
  14. \104:D的八进制ASCII码  
  15. \141:a的八进制ASCII码  
  16. \171:y的八进制ASCII码  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值