shell文本過濾編程(五):awk之printf

來源:互聯網
上載者:User

標籤:style   blog   使用   ar   資料   html   log   sp   new   

【著作權聲明:轉載請保留出處:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】 
在大多數情況下 awk 的 print 語句可以完成任務,但有時我們還需要更多。在那些情況下,awk 提供了兩個我們熟知的函數 printf() 和 sprintf()。是的,如同其它許多 awk 組件一樣,這些函數等同於相應的 C 語言函數。printf() 會將格式化字串列印到 stdout,而 sprintf()函數返回根據printf格式說明指定的格式化的字串,它格式化資料但不輸出資料。a w k提供函數p r i n t f,擁有幾種不同的格式化輸出功能。例如按列輸出、靠左對齊或靠右對齊方式。
printf()函數基本文法是printf()(”格式控制符“,參數) ,格式控制字元通常在引號裡。類似C語言,awk printf格式有如下:
% c A S C I I字元
% d 整數
% e 浮點數,科學記號標記法
% f 浮點數,例如(1 2 3 . 4 4)
% g awk決定使用哪種浮點數轉換 e或者f
% o 八位元
% s 字串
% x 十六進位數
下面來試試這些個格式:
# echo 97 | awk '{printf("%c\n", $0)}'  A
像C語言一樣,換行需要加“\n”。
# echo 97 | awk '{printf("%d\n", $0)}'97# echo 97 | awk '{printf("%f\n", $0)}'97.000000# echo 97 | awk '{printf("%e\n", $0)}'9.700000e+01# echo 97 | awk '{printf("%s\n", $0)}'97
類似C語言的格式化輸出:
# awk 'BEGIN{FS=":"}{printf("%-15s%s\n", $1, $3)}' group_file2wireshark    987usbmon       986jackuser     985vboxusers    984aln         1001
sprintf()函數返回根據printf格式說明指定的格式化的字串,它格式化資料但不輸出資料。所以需要將sprintf返回的資料儲存在變數裡面再輸出。
# awk 'BEGIN{FS=":";ORS=""}{var=sprintf("%s\n", $1);print var}' group_file2wiresharkusbmonjackuservboxusersaln
其他的用法和C語言類似。

shell文本過濾編程(五):awk之printf

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.