2

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

像这样的东西:

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

2 回答 2

2

弄清楚了!:D

n=$maxlen
awk -v val=$n -F',' '{printf "%*s %7s %17s %4i\n", val, $1, $2, $3, $4}' somefile.txt
于 2012-09-27T18:25:39.803 回答
1

一种选择是背着 AWK,让 Bash 将数字直接滑入 AWK 脚本:

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

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

于 2012-09-27T18:26:22.503 回答