博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
awk 格式化输出
阅读量:4049 次
发布时间:2019-05-25

本文共 2013 字,大约阅读时间需要 6 分钟。

– Start

printf 函数

几乎所有的语言都支持 printf 函数,awk 也不例外。下面我们来看一个简单的例子.

#! /usr/bin/awk -fBEGIN {    printf("printf example:%-5.2f\n", 33.698);};{};END {};

结果如下:

printf example:33.70

%-5.2f 被称为格式符(format specifier), 格式符由以下几部分组成:

%[flags][width][.precision]conversion    %  -      5      .2         f
  • %是必须的, 任何格式符都由百分号开始
  • flags 是可选的,详见下表
  • width 是可选的, 表示输出的宽度
  • precision 可选的, precision 依赖于 conversion, 详见下表.
  • conversion 是必须的, 表示如何格式化参数, 详见下表

awk 支持如下转换符(conversion)。

转换符           描述   c               ASCII 字符 (打印第一个字符)   d               十进制整数   i               十进制整数   e               浮点数科学计数法   E               浮点数科学计数法   f               浮点数   g               %e 或 %f, 取决于哪个更短, 删除尾部0   G               %E 或 %f, 取决于哪个更短, 删除尾部0   u               无符号十进制整数    o               无符号八进制整数   x               无符号十六进制整数(a-f for 10 to 15)   X               无符号十六进制整数(A-F for 10 to 15)   %%               %   s               字符串

awk 支持如下标志(flag)

标志         描述               举例  -           左对齐             |3333.33 |  空格         在正数之前添加空格    | 3333.33|,|-3333.33|  +           打印正负数符号       |+3333.33|,|-3333.33|  0           数字前面补0         |003333.33|  #(对于%o)    添加前缀0           |0515|  #(对于%x)    添加前缀0x         |0x1bc|  #(对于%X)    添加前缀0X         |0X1bc|  #(对于%e)    添加小数点          |1.000000e+01|  #(对于%E)    添加小数点          |1.000000E+01|  #(对于%f)    添加小数点          | 10.000000|  #(对于%g)    不删除尾部0         |10.4000|  #(对于%G)    不删除尾部0         |10.4000|

awk 精度(precision)的意义。

转换符                 精度意义  %d,%i,%o,%u,%x,%X    最少数字位数,如果数字位数少于精度,添加前缀0  %e, %E               最少数字位数,如果数字位数少于精度,添加后缀0  %f                   小数的位数  %g, %G               最多数字位数  %s                   字符位数

动态宽度和精度

#! /usr/bin/awk -fBEGIN {    # 用星号实现动态宽度和精度    printf("printf example:%-*.*f\n", 5, 2, 33.698);};{};END {};

sprintf 函数

如果你不想打印,而是想格式化一个字符串,然后把它保存到一个变量中,该怎么办呢?试一试 sprintf 函数吧。

#! /usr/bin/awk -fBEGIN {    str=sprintf("%5.2f", 33.698);    print str;};{};END {};

– 更多参见:

– 声 明:转载请注明出处
– Last Updated on 2015-10-28
– Written by ShangBo on 2015-10-28
– End

你可能感兴趣的文章
史记翻译-汉初三杰-韩信-淮阴侯列传第三十二
查看>>
帝王封赏之道和老板的封赏之道
查看>>
工作分解结构在软件开发中的应用
查看>>
关于系统崩溃后的Oracle恢复
查看>>
遭遇蚊子的獠牙,想起一种叫黄鸡婆的小虫子
查看>>
使用批处理命令给客户更新oracle数据库
查看>>
回首考研路:那年,那月,还有那条孤独的考研狗
查看>>
GCD小结
查看>>
IOS 第三方库介绍
查看>>
iPhone架构xmpp聊天工具 -xmpp协议初识《一》
查看>>
iOS提交后申请加急审核
查看>>
iOS7单元测试
查看>>
ios framework 通用库的制作
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>
iOS获取手机的Mac地址
查看>>
ios7.1发布企业证书测试包的问题
查看>>
如何自定义iOS中的控件
查看>>
iOS 开发百问
查看>>
Mac环境下svn的使用
查看>>