– start
幾乎所有的語言都支援 printf 函式,awk 也不例外。下面我們來看乙個簡單的例子.
#! /usr/bin/awk -f
begin ;
{};end {};
結果如下:
printf example:33.70
%-5.2f 被稱為格式符(format specifier), 格式符由以下幾部分組成:
%[flags][width][.precision]conversion
% - 5 .2 f
awk 支援如下轉換符(conversion)。
轉換符 描述
c ascii 字元 (列印第乙個字元)
d 十進位制整數
i 十進位制整數
e 浮點數科學計數法
e 浮點數科學計數法
f 浮點數
g %e 或 %f, 取決於哪個更短, 刪除尾部0
g %e 或 %f, 取決於哪個更短, 刪除尾部0
u 無符號十進位制整數
o 無符號八進位制整數
x 無符號十六進製制整數(a-f for
10 to 15)
x 無符號十六進製制整數(a-f
for10 to 15)
%% %
s 字串
awk 支援如下標誌(flag)
標誌 描述 舉例
- 左對齊 |3333.33 |
空格 在正數之前新增空格 | 3333.33|,|-3333.33|
+ 列印正負數符號 |+3333.33|,|-3333.33|
0 數字前面補0 |003333.33|
#(對於%o) 新增字首0 |0515|
#(對於%x) 新增字首0x |0x1bc|
#(對於%x) 新增字首0x |0x1bc|
#(對於%e) 新增小數點 |1.000000e+01|
#(對於%e) 新增小數點 |1.000000e+01|
#(對於%f) 新增小數點 | 10.000000|
#(對於%g) 不刪除尾部0 |10.4000|
#(對於%g) 不刪除尾部0 |10.4000|
awk 精度(precision)的意義。
轉換符 精度意義
%d,%i,%o,%u,%x,%x 最少數字位數,如果數字位數少於精度,新增字首0
%e, %e 最少數字位數,如果數字位數少於精度,新增字尾0
%f 小數的位數
%g, %g 最多數字位數
%s 字元位數
#! /usr/bin/awk -f
begin ;
{};end {};
如果你不想列印,而是想格式化乙個字串,然後把它儲存到乙個變數中,該怎麼辦呢?試一試 sprintf 函式吧。
#! /usr/bin/awk -f
begin ;
{};end {};
四,awk格式化
之前的文章舉過很多例子,我們也體驗到了awk的格式化能力,但是我們的體驗並不全面,所以,現在,我們來更加深刻的了解一下awk的格式化能力,在前文的舉例中,我們在使用awk時,通常使用print 對文字進行輸出,但是動作print 只能實現簡單的文字輸出功能,並不能對文字格式進行改變,如果想要改變文字...
格式化輸出
a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...
格式化輸出
a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...