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