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

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 に答える