我有一个变量:n=$maxlen
,有什么方法可以在 awk 中使用 printf 时将其用作字段宽度?
像这样的东西:
n=$maxlen
awk -v val=$n -F',' '{printf "%vals %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt
弄清楚了!:D
n=$maxlen
awk -v val=$n -F',' '{printf "%*s %7s %17s %4i\n", val, $1, $2, $3, $4}' somefile.txt
一种选择是背着 AWK,让 Bash 将数字直接滑入 AWK 脚本:
awk -v -F',' '{printf "%'"$n"'s %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt
据 AWK 所知,这%'"$n"'s
是一个实际的%3s
(或其他)。