文本處理工具printf命令

使用過c語言的程序員,應該很熟悉printf命令,printf命令模仿了c語言的printf( )函數

printf命令的作用是按照我們指定的格式輸出文本

輸出文本命令echo和printf有什麼區別
看到echo 命令是正常輸出一個文本進行換行,而printf是輸出文本進行不換行

[root@zhaocheng ~]# echo beijing
beijing
[root@zhaocheng ~]# printf beijing
beijing[root@zhaocheng ~]# 


如果使用printf進行換行輸出可以加\n

[root@zhaocheng ~]# printf "beijing\n"
beijing

而printf這麼麻煩,但爲什麼還有人一直在用,它真正的作用是能夠格式化輸出文本的能力
而打印的時候,echo -e可以使用\n換行進行輸出,而printf也可以加\n換行輸出,或者也可以加"%s\n"進行輸出


而printf的能力在處理多行進行換行的文本時明顯是比較快,使用\n的時候如果處理多1000個需要換行的,顯示echo -e \n 力不從心,也就是%s這個是代替傳入的參數,%s代替了命令中123,456,當我們使用%s\n就會通過printf輸出格式化成"abc\n" 以此類推這樣都進行將後面的進行格式化輸出

[root@zhaocheng ~]# echo -e "123 \n456 \n789 \naaa \nbbb \nccc" 
123 
456 
789 
aaa 
bbb 
ccc
[root@zhaocheng ~]# printf "123 \n456 \n789 \naaa \nbbb \nccc" 
123 
456 
789 
aaa 
bbb 
[root@zhaocheng ~]# printf "%s\n" 123 456 789 aaa bbb ccc
123
456
789
aaa
bbb
ccc

printf還支持多種替換符格式化類型
%s 字符串
%f 浮點格式
%b 相對應的參數中包含轉義字符時,可以使用此替換符進行替換,對於的轉義字符會被轉義
%c ASCII字符,顯示相對應參數的第一個字符
%d %i 十進制整數
%o 不帶正負號的八進制值
%u 不帶正負號的十進制值
%x 不帶正負號的十六進制值,使用a至f表示10至15
%X 不帶正負號的十六進制值,使用A至F表示10至15
%% 表示“%”本身

轉義字符
printf常用的轉義符
\a 警告字符,通常爲ASCLL的BEL字符
\b 後退
\c 抑制(不顯示) 輸出結果中任何結尾的轉義字符,(只在%b格式指示符控制下的參數字符串中有效,而且任何留在參數裏的字符,任何接下來的參數以及任何留在格式字符串中的字符,都被忽略
\f 換頁
\n 換行
\r 回車
\t 水平製表符
\v 垂直製表符
\ 一個字面上的反斜槓字符,僅在格式字符串中有效
\0ddd 表示1-3位的八進制值字符

比如爲每個傳入的參數添加一對括號,並且括號內測需要有空格

[root@zhaocheng ~]# printf "[%s] " 12 45 67 78 89  ; echo ""
[12] [45] [67] [78] [89] 
[root@zhaocheng ~]# printf "[ %s ] " 12 45 67 78 89  ; echo ""
[ 12 ] [ 45 ] [ 67 ] [ 78 ] [ 89 ] 

使用\t參數“製表符”進行隔開

[root@zhaocheng ~]# printf "%s\t" 12 45 67 78 89 ; echo ""
12      45      67      78      89 

使用\n是換行輸出,%f\n浮點型參數輸出

[root@zhaocheng ~]# printf "%s\n" 123 45 5676 76
123
45
5676
76
[root@zhaocheng ~]# printf "%f\n" 123 45 5676 76
123.000000
45.000000
5676.000000
76.000000


格式替換符的使用

[root@zhaocheng ~]# printf " %s\n" 12 45 67 78 89 99
 12
 45
 67
 78
 89
 99
[root@zhaocheng ~]# printf "%s %s\n" 12 45 67 78 89 99
12 45
67 78
89 99
[root@zhaocheng ~]# printf "%s %s %s\n" 12 45 67 78 89 99
12 45 67
78 89 99
[root@zhaocheng ~]# printf "%s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78
89 99  
[root@zhaocheng ~]# printf "%s %s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78 89
99    
[root@zhaocheng ~]# printf "%s %s %s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78 89 99
[root@zhaocheng ~]# printf "12 45 67 78 89 99\n"
12 45 67 78 89 99


使用printf 同樣也可以進行顏色輸出

文本處理工具printf命令

文本處理工具printf命令

也可以加入特定的數字,%7s 7表示當前替換符對應的輸出寬度爲7個字符寬

文本處理工具printf命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章