我有一个变量:n=$maxlen
,有什么方法可以在awk中使用printf时将其用作字段宽度?
这样的事情:
n=$maxlen
awk -v val=$n -F',' '{printf "%vals %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt
答案 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
(或其他)。