文章目录
四、格式化输出
1.print语句
- 参数可以是变量,计算表达式,字符串常量
- 字符串必须用双引号引起来
[root@localhost tmp]#echo 300 2 3 4 | awk '{print "hello" }'
hello
- 参数之间用逗号分隔
[root@localhost tmp]#echo 300 2 3 4 | awk '{print $1,$2 }'
300 2
- 输出可以被重定向
[root@localhost tmp]#echo 300 2 3 4 | awk '$1 * $2 > 500{print $3+$4 >> "/tmp/test" }'
- 输出和输入可以通过管道
[root@localhost tmp]#echo 300 2 3 4 | awk '$1 * $2 > 500{print $3+$4 | "grep 7" }'
7
- 转义序列
用一个\与一个字母或数字来表示
\n 换行
\t 制表符
\r 回车
\047 八进制值47
2.printf语句
- 返回给标准输出一个带有格式的字符串
- 不会在行尾部自动换行
- 包含一个加“”的控制字符串
- 修饰符
-
左对齐,默认右对齐
+
数字带正负符号(+,-)
- 格式说明转换符 %
c
字符character
s
字符串string
d
整数 digit
f
浮点数 float
- 例子
[root@localhost tmp]#echo alice 23 01 |awk ' {printf "The name is: %-15s ID is :%8d\n",$1,$3}'
The name is: alice ID is : 1
[root@localhost tmp]#echo alice 23 01 |awk ' {printf "The name is: %-15s ID is :%-8d\n",$1,$3}'
The name is: alice ID is :1
[root@localhost tmp]#echo alice 23 01 |awk ' {printf "The name is: %15s ID is :%8d\n",$1,$3}'
The name is: alice ID is : 1
3.练习
文件内容
Mary 2143 78 84 77
Jack 2321 66 78 45
Tom 2122 48 77 71
Mike 2537 87 97 95
Bob 2415 40 57 62
要求输出结果
LNO. Name No. Math Eng Com Total
------------------------------------------------------------
1 Mary 2143 78 84