格式化打印(一)

我们编写的许多脚本可以很好地实现对数据的操作,但没有对输出进行适当的格式化。这是因为基本的print语句所能做的工作有限。因为awk的大多数功能是产生报告,因此以整齐的样式产生格式化报告是很重要的。程序filesum可以很好地处理数据,但它的报告缺乏整齐的格式。

awk提供的printf可以代替print语句,printf是借用了C程序设计语言。printf语句和print语句一样可以打印一个简单的字符串。

awk ‘ BEGIN { printf ("Hello, world\n") }‘

首先可以看出,printf和print的主要区别是printf没有提供自动换行功能。必须明确地为它指定"\n" 。

printf语句的完整语法由两部分组成:

printf ( for mat-expression [, arguments] )

其中的圆括号是可选的。第一部分是一个用来描述格式的表达式,通常以引号括起的字符串常量的形式提供。第二部分是一个参数列表,例如变量名列表,它和格式说明相对应。在格式说明前面有一个百分号(%) ,而格式说明符号为下表列出的字符之一。两个主要的格式说明符是s和d, s表示字符串,d表示十进制整数

在printf的格式说明符

格式说明符 功能
%c 打印单个ASCII 字符

printf("The character is %c\n",x)

输出: The character is A

%d 打印一个十进制数

printf("The boy is %d years old\n",y)

输出:The boy is 15 years old

%e 打印数字的e 记数法形式

printf("z is %e\n",z) 打印: z is 2.3e+0 1

%f 打印一个浮点数

printf("z is %f\n", 2.3 * 2)

输出: z is 4.600000

%o 打印数字的八进制

printf("y is %o\n",y)

输出:z is 17

%s 打印一个字符串

print("The name of the culprit is %s\n",$1)

输出:The name of the culprit is Bob Smith

%x 打印数字的十六进制值

printf("y is %x\n",y)

输出:x is f

下例在程序filenum的规则2中用printf产生一个输出。它输出不同的两个字段上的字符串和十进制值:

printf("%d\t%s\n", $5, $9)

该语句输出$5的值,后面是制表符\t和$9、然后输出一个换行符(\n)。对每个格式说明必须提供一个相应的参数。

参考资料:http://www.linuxawk.com/communication/526.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 17:26:34

格式化打印(一)的相关文章

mongodb之find格式化打印

未格式化打印 > db.games.find() { "_id" : ObjectId("53d077372826c5d3aae7ad6a"), "game" : "pinball", "user" : "joe", "score" : 5050 } 格式化打印 > db.games.find().pretty() { "_id" : 

Java获取当前时间年月日、时间格式化打印、字符串转日期

package com.sysc.simple; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { public static void show() throws ParseException { //获取当前日期 Calendar now = Calendar

【JAVA】格式化打印printf的使用

格式化打印printf的使用 import java.util.Date; /** * 使用printf输出 */ /**关键技术点 * 使用java.io.PrintStream的printf方法实现C风格的输出 * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象 */ public class Printf { public static void main(String[] args) { /*** 输出字符串 ***/ // %s表示输出字符串,也

printf格式化打印

格式代码 A ABC ABCDEFGH %S A ABC ABCDEFGH %5S ####A ##ABC ABCDEFGH %.5S A ABC ABCDE %5.5S ####A ##ABC ABCDE %-5S A#### ABC## ABCDEFGH Printf 格式化字符串 格式代码 1 -12 12345 123456789 %d 1 -12 12345 123456789 %6d #####1 ###-12 #12345 123456789 %.4d 0001 -0012 123

【Python基础】格式化打印

''' 1.能够很规范的打印出想要的内容 2.双引号内没有办法放变量 ''' ## 格式化输入 # %s 输入任意扥内容都不会报错因为全部当做str来处理 # %d 只能输入数字 #案例一 name = input("Name: ") age = input("Age: ") hosttown = input("HostTown: ") info = ''' Name: %s Age:%s Hosttown: %s '''%(name,age,h

格式化打印(二)

printf语句可以规定输出域的宽度和对齐方式.一个格式表达式由3个可选的修饰符组成,跟在"%"后面,并出现在格式说明符之前. %-width.precision format-specifier 描述输出字段宽度的width是一个数值.当指定域宽度时,这个域的内容默认为向右对齐.必须指定"-"来设置左对齐.因此, "%-20s" 输出的走向左对齐的一个域长度为20个字符的字符串,如果字符串少于20个字符,那么这个域将用空格来填满.在下面的例子中

初识python - 格式化打印

现有一练习需求,问用户的姓名.年龄.工作.爱好 ,然后打印成以下格式 ------------ info of Pang Hu ----------- Name : Pang Hu Age : 22 job : Program Hobbie: Music ------------- end ----------------- 你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势 只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知

Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)

[cpp] view plain copy // Debug模式,主要输出一些调试的信息. #ifdef UNICODE #define _FILE_          _STR2WSTR(__FILE__) #define _FUNCTION_          _STR2WSTR(__FUNCTION__) #else #define _FILE_          __FILE__ #define _FUNCTION_          __FUNCTION__ #endif #defin

python格式化打印

格式符 格式符为真实值预留位置,并控制显示的格式.格式符可以包含有一个类型码,用以控制显示的类型,如下: %s    字符串 (采用str()的显示) %r    字符串 (采用repr()的显示) %c    单个字符 %b    二进制整数 %d    十进制整数 %i    十进制整数 %o    八进制整数 %x    十六进制整数 %e    指数 (基底写为e) %E    指数 (基底写为E) %f    浮点数 %F    浮点数,与上相同 %g    指数(e)或浮点数 (根据