上面这一串格式想必您看得很辛苦!没关系!一个一个来½释!上面的格式共分为五个字段,
%10s
代表的是一个长度为
10
个字符的字符串字段,
%5i
代表的是长度为
5
个字符的数字字段,至于那
个
%8.2f
则代表长度为
8
个字符的具有小数点的字段,其中小数点有两个字符宽度。我们可以使用
底下的说明来½绍
%8.2f
的意义:
字符宽度:
12345678
%8.2f
意义:
00000.00
如上所述,全部的宽度½有
8
个字符,整数部分占有
5
个字符,小数点本身
(.)
占一位,小数点下
的位数则有两位。
这种格式经常使用于数值程序的设计中!这样了½乎?自己试看看如果要½小数
点位数变成
1
位又该如何处理?
printf
除了可以格式化处理之外,他还可以依据
ASCII
的数字与图形对应来显示数据喔
(
注
3
)
!
举
例来说
16
½位的
45
可以得到什么
ASCII
的显示图
(
其实是字符啦
)
?
范例三:列出
16
½
位
数
值
45
代表的字符
为
何?
[dmtsai@study ~]$
printf '
\
x45
\
n'
E
#
这东
西也很好玩~他可以
½数
值
转换
成
为
字符,如果你
会写
script
的
话
,
#
可以自行
测试
一下,由
20~80
之
间
的
数
值代表的字符是啥喔!
^_^
printf
的使用相当的广泛喔!包括等一下后面会提到的
awk
以及在
C
程序语言当中使用的屏幕输出,
都是利用
printf
呢!鸟哥这里也只是列出一些可能会用到的格式而已,有兴趣的话,可以自行多作
一些测试与练习喔!
^_^
Tips
打印格式化这个
printf
指令,乍看之下好像也没有什么很重要的~
不过,如果你需要
自行撰写一些软件,需要½一些数据在屏幕上头漂漂亮亮的输出的话,
那么
printf
可也是一个很棒的工具喔!
11.4.2 awk
:好用的数据处理工具
awk
也是一个非常棒的数据处理工具!相½于
sed
常常作用于一整个行的处理,
awk
则比½倾向
于一行当中分成数个『字段』来处理。因此,
awk
相当的适合处理小型的数据数据处理呢!
awk
通
常运作的模式是这样的:
[dmtsai@study ~]$
awk '
条
件
类
型
1{
动
作
1}
条
件
类
型
2{
动
作
2} ...' filename
awk
后面½两个单引号并加上大括号
{}
来设定想要对数据½行的处理动作。
awk
可以处理后续½
的文件,也可以读取来自前个指令的
standard output
。
但如前面说的,
awk
主要是处理『每一行
的字段内的数据』,而默认的『字段的分隔符为
"
空格键
"
或
"[tab]
键
"
』
!举例来说,我们用
last
可
以½登入者的数据取出来,½果如下所示: