printf 命令详解
生活随笔
收集整理的這篇文章主要介紹了
printf 命令详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
printf 命令
作用:按照我們指定的格式輸出文本
語法格式
printf "FORMAT" , item1, item2, ...printf的工作原理: 將printf后面的item作為參數逐個傳遞給"FORMAT"進行格式化后輸出(1) 必須指定FORMAT, (2) 不會自動換行,需要顯式給出換行控制符,\n (3) FORMAT可以有多個,但是必須與后面的每個item指定格式符#printf "%s\n%s\n%s\n%4.2f\n%4.2f\n%4.2f\n" I love you 11 12.2 13.35一共6個item,所以就是必須有6個FORMAT。如果FORMAT數量少于item數量,則FORMAT的個數控制一次傳多少個item處理。比如:#printf "%7s %7s\n" I love you 11 12.2 13.35 2個FROMAT 6個item,一次傳2個處理I loveyou 1112.2 13.35格式符:與item一一對應 %c: 顯示字符的ASCII碼 %d, %i: 顯示十進制整數#printf "%g\n" -1 10 100.15 123.14-110100.15123.14%e, %E:顯示科學計數法數值#printf "%e\n" A -1 10 100.15 123.14-bash: printf: A: invalid number0.000000e+00-1.000000e+001.000000e+011.001500e+021.231400e+02%f:顯示為浮點數#printf "%f\n" A -1 10 100.15 123.14-bash: printf: A: invalid number0.000000-1.00000010.000000100.150000123.140000%g, %G:以科學計數法或浮點形式顯示數值printf "%g\n" A -1 10 100.15 123.14-bash: printf: A: invalid number0-110100.15123.14%s:顯示字符串%u:無符號整數#printf "%u\n" A -1 10 100.15 123.14-bash: printf: A: invalid number01844674407370955161510-bash: printf: 100.15: invalid number0-bash: printf: 123.14: invalid number0%o 不帶正負號的八進制值 %u 不帶正負號的十進制值 %x 不帶正負號的十六進制值,使用a至f表示10至15 %X 不帶正負號的十六進制值,使用A至F表示10至15 %%: 顯示%自身? 修飾符: #[.#]:第一個數字控制顯示的寬度;第二個#表示小數點后精度,%3.1f 四舍五入#printf "%-3.1f\n" 10 100.15 123.1410.0100.2123.1-: 左對齊(默認右對齊) %-15s +:顯示數值的正負符號 %+d I love you 11 12.2 13.33 分別用echo 和 printf 按空格分隔換行輸出來看效果 #echo -e "I\n love\n you\n 11\n 12.2\n 13.33\n" Iloveyou1112.213.33#printf "%s\n" I love you 11 12.2 13.33 I love you 11 12.2 13.33 是不是再也不用頭疼\n換行的逐個設置了?但是,再進行復雜一點的格式化輸出,echo就無法處理了 #printf "%s\n%s\n%s\n%4.2f\n%4.2f\n%4.2f\n" I love you 11 12.2 13.35 I love you 11.00 12.20 13.35來一些實例:
為傳入的參數增加一對 [] 參數在[ ] 內
#cat mod|xargs printf "[ %s ]\n" [ 周瑜-法師-烽火赤壁 ] [ 不知火舞-法師-必殺·忍蜂 ] [ 鎧-戰士-不滅魔軀 ] #awk -F : '{printf "username:%15s | UID: %10d\n------------------------------------------\n",$1,$3}' /etc/passwd awk -F: '{printf "%-8s %8s",$1 $2}' passwd.txt username: rtkit | UID: 498 ------------------------------------------ username: pulse | UID: 497 ------------------------------------------ username: gdm | UID: 42 ------------------------------------------ username: hunk | UID: 500 ------------------------------------------ 想怎么樣式就輸出修飾符對于數字的影響
#printf "%.3f\n" 123.456789 1234.56789 123.457 1234.568 當修飾符為%f時,控制小數點后的精度 .3 就是3位小數#printf "%.6d\n" 123 1234 000123 001234 當修飾符為%d時,控制整數的位數,不足的在高位補0 .6 就是6位整數 本文轉自 ljpwinxp 51CTO博客,原文鏈接:http://blog.51cto.com/191226139/2060002總結
以上是生活随笔為你收集整理的printf 命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 间隙锁例子
- 下一篇: 解决crond引发大量sendmail、