bash变量为awk字段宽度

时间:2012-09-27 18:18:33

标签: bash awk printf

我有一个变量:n=$maxlen,有什么方法可以在awk中使用printf时将其用作字段宽度?

这样的事情:

n=$maxlen
awk -v val=$n -F',' '{printf "%vals %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt

2 个答案:

答案 0 :(得分:2)

想出来! :d

n=$maxlen
awk -v val=$n -F',' '{printf "%*s %7s %17s %4i\n", val, $1, $2, $3, $4}' somefile.txt

答案 1 :(得分:1)

一个选择就是落后于AWK,并要求Bash将这个号码直接放入AWK脚本中:

awk -v -F',' '{printf "%'"$n"'s %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt

据AWK所知,%'"$n"'s是实际%3s(或其他)。