awk print与printf的差别

awk中如果输出字符的话,有两种处理方式。printfprint,两种方式存在着不同,下面简要的说明下。

printf:可以自定义输出的模式,另外输出内容之后不自动换行

print:输出内容之后自动换行

example

file

11111_22222_33333_44444_55555_66666

awk -F’_’ ‘{for(i=1;i<=NF;i++)print $i}’ file

11111

22222

33333

44444

55555

66666

awk -F’_’ ‘{for(i=1;i<=NF;i++)printf $i}’ file

111112222233333444445555566666

所以可以看出,print输出一个内容之后,自动换行,但是printf不会这样,另外如果我们需要在处理文本的过程中输出换行符的话,可以print “”,输出一个空字符就表示输出了一个换行符。

file2

name1 1 2 3 4 5 6

name2 2 3 4 5 6 7

name3 3 4 5 6 7 8

如果想要的结果为

name1 12 34 56

name2 23 45 67

name3 34 56 78

处理方式为:

awk '{printf $1;for(i=2;i<=NF;i=i+2)printf " "$i$i+1;print ""}' file2

注意开始的时候输出的是$1,此时注意不会输出换行符,另外如果输出$1$2这样子输出的话,不会输出字段分隔符空格,但是如果输出$1,$2的话,中间有逗号的话,就会输出字段分隔符。另外最后的print””,表示输出一个换行符进行下一行的处理。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值