首页 > 代码库 > shell文本过滤编程(五):awk之printf
shell文本过滤编程(五):awk之printf
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】
在大多数情况下 awk 的 print 语句可以完成任务,但有时我们还需要更多。在那些情况下,awk 提供了两个我们熟知的函数 printf() 和 sprintf()。是的,如同其它许多 awk 部件一样,这些函数等同于相应的 C 语言函数。printf() 会将格式化字符串打印到 stdout,而 sprintf()函数返回根据printf格式说明指定的格式化的字符串,它格式化数据但不输出数据。a w k提供函数p r i n t f,拥有几种不同的格式化输出功能。例如按列输出、左对齐或右对齐方式。
printf()函数基本语法是printf()(”格式控制符“,参数) ,格式控制字符通常在引号里。类似C语言,awk printf格式有如下:
% c A S C I I字符
% d 整数
% e 浮点数,科学记数法
% f 浮点数,例如(1 2 3 . 4 4)
% g awk决定使用哪种浮点数转换 e或者f
% o 八进制数
% s 字符串
% x 十六进制数
下面来试试这些个格式:
在大多数情况下 awk 的 print 语句可以完成任务,但有时我们还需要更多。在那些情况下,awk 提供了两个我们熟知的函数 printf() 和 sprintf()。是的,如同其它许多 awk 部件一样,这些函数等同于相应的 C 语言函数。printf() 会将格式化字符串打印到 stdout,而 sprintf()函数返回根据printf格式说明指定的格式化的字符串,它格式化数据但不输出数据。a w k提供函数p r i n t f,拥有几种不同的格式化输出功能。例如按列输出、左对齐或右对齐方式。
printf()函数基本语法是printf()(”格式控制符“,参数) ,格式控制字符通常在引号里。类似C语言,awk printf格式有如下:
% c A S C I I字符
% d 整数
% e 浮点数,科学记数法
% f 浮点数,例如(1 2 3 . 4 4)
% g awk决定使用哪种浮点数转换 e或者f
% o 八进制数
% s 字符串
% x 十六进制数
下面来试试这些个格式:
# echo 97 | awk '{printf("%c\n", $0)}' A像C语言一样,换行需要加“\n”。
# echo 97 | awk '{printf("%d\n", $0)}' 97 # echo 97 | awk '{printf("%f\n", $0)}' 97.000000 # echo 97 | awk '{printf("%e\n", $0)}' 9.700000e+01 # echo 97 | awk '{printf("%s\n", $0)}' 97类似C语言的格式化输出:
# awk 'BEGIN{FS=":"}{printf("%-15s%s\n", $1, $3)}' group_file2 wireshark 987 usbmon 986 jackuser 985 vboxusers 984 aln 1001sprintf()函数返回根据printf格式说明指定的格式化的字符串,它格式化数据但不输出数据。所以需要将sprintf返回的数据保存在变量里面再输出。
# awk 'BEGIN{FS=":";ORS=""}{var=sprintf("%s\n", $1);print var}' group_file2 wireshark usbmon jackuser vboxusers aln其他的用法和C语言类似。
shell文本过滤编程(五):awk之printf
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。