内建函数NR是next record的意思!!
print叙述
print 叙述用在简单、标准的输出格式。叙述的格式如下所示:
print item1, item2, ...
输出时,各个 item 之间会以一个空白分开,最後会换行(newline)。
如果 'print'叙述之後没有跟著任何东西,它与'print $0'的效
果一样,它会印出现在的记录(record)。要印出空白行可使用'print
""'。 印出一段固定的文字,可用双引号将文字的两边括起来,例如
'print "Hello there"'。
这里是一个例子,它会把每个输入记录的前二个栏位印出:
gawk '{print $1,$2}' shipped
printf叙述
printf 叙述会使得输出格式较容易精确地控制。printf 叙述可以
指定每个 item 印出的宽度,也可以指定数字的各种型式。
printf 叙述的格式如下:
printf format, item1, item2, ...
print 与 printf 的差别是在於 format, printf 的引数比 print
多了字串 format。format 的型式与 ANSI C 的 printf 之格式相同。
printf 并不会做自动换行的动作。内建变数 OFS 与 ORS 对 printf 叙
述没有任何影响。
格式的指定以字元'%'开始,後面接著格式控制字母。
格式控制字母如下所示:
'c' 将数字以 ASCII 字元印出。
例如'printf "%C",65'会印出字元'A'。
'd' 印出十进位的整数。
'i' 印出十进位的整数。
'e' 将数字以科学符号的形式印出。
例如
print "$4.3e",1950
结果会印出'1.950e+03'。
'f' 将数字以浮点的形式印出。
'g' 将数字以科学符号的形式或浮点的形式印出。数字的绝对值如果
大於等於0.0001则以浮点的形式印出,否则以科学符号的形式印
出。
'o' 印出无号的八进位整数。
's' 印出一个字串。
'x' 印出无号的十六进位整数。10至15以'a'至'f'表示。
'X' 印出无号的十六进位整数。10至15以'A'至'F"表示。
'%' 它并不是真正的格式控制字母,'%%"将印出"%'。
在 % 与格式控制字母之间可加入 modifier,modifier 是用来进一
步控制输出的格式。可能的 modifier 如下所示:
'-' 使用在 width 之前,指明是向左靠齐。如果'-'没有出现,则会在
被指定的宽度向右靠齐。例如:
printf "%-4S", "foo"
会印出'foo '。
'width' 这一个数字指示相对应的栏位印出时的宽度。例如:
printf "%4s","foo"
会印出' foo'。
width 的值是一个最小宽度而非最大宽度。如果一个 item 的
值需要的宽度比 width 大,则不受 width 的影响。例如
printf "%4s","foobar"
将印出'foobar'。
'.prec' 此数字指定印出时的精确度。它指定小数点右边的位数。如
果是要印出一个字串,它指定此字串最多会被印出多少个字
元。
。
阅读(1321) | 评论(0) | 转发(0) |