awk没有按预期显示列

时间:2017-02-08 12:42:07

标签: bash macos awk

我有一个输入文件,格式如下:

userA 3 5
userB 2 1
userC 1 3
userD 4 2
userE 5 4

我正在尝试按第二个数字列对文件进行排序,然后打印输出,看起来像这样:

Player    Current    Previous
------    -------    --------
userC     1          3
userB     2          1
userA     3          5
userD     4          2
userE     5          4

这是我到目前为止所做的:

#!/bin/bash

sort -k2 -n file.txt | head -n5 | \
awk 'BEGIN { print "Name  Current  Previous" 
     print "----  -------  --------" }
     { printf "%-10s %s\n", $1,$2,$3 }' | \
column -t

然而,这会显示输出而不显示第3列数字:

Player    Current    Previous
------    -------    --------
userC     1          
userB     2          
userA     3          
userD     4          
userE     5          

我做错了什么?

1 个答案:

答案 0 :(得分:4)

你的 printf 格式字符串缺少第三个%s ,请尝试修改它:

printf "%-10s %-10s %s\n", $1,$2,$3