2012-09-27 31 views
2

我有一個變量:n=$maxlen,有沒有什麼辦法可以在awk中使用printf作爲字段寬度?bash變量爲awk字段寬度

事情是這樣的:

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

回答

2

想通了! :d

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

一種選擇是去後面AWK的背部,並要求猛砸直接滑數爲AWK腳本:

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

至於AWK會知道,那%'"$n"'s是實際%3s(或其他)。

+0

我不知道你能做到這一點,謝謝! – Ray