私は変数を持っています: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
1つのオプションは、AWKの後ろに隠れて、Bashに番号をAWKスクリプトに直接挿入するように依頼することです。
awk -v -F',' '{printf "%'"$n"'s %7s %17s %4i\n", $1, $2, $3, $4}' somefile.txt
AWKが知る限り、それ%'"$n"'s
は実際の%3s
(または何でも)です。