awk之格式化输出&变成结构&awk编程

四、格式化输出

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  
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值