awk 格式化輸出

2021-07-06 05:38:10 字數 2132 閱讀 5266

– 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 十進位制記數法...