shell編程系列15--文本處理三劍客之awk格式化輸出printf

shell編程系列15--文本處理三劍客之awk格式化輸出printf

printf的格式說明符

格式符        含義
%s        打印字符串
%d        打印十進制數
%f        打印一個浮點數
%x        打印十六進制數
%o        打印八進制數
%e        打印數學的科學計數法形式
%c        打印單個字符的ASCII碼


printf的修飾符

修飾符        含義
-        左對齊
+        右對齊
#        顯示8進制在前面加0,顯示16進制在前面加0x

awk格式化輸出之printf總結:
    格式符
    %s        打印字符串
    %d        打印10進制數
    %f        打印浮點數
    %x        打印16進制數
    %o        打印8進制數
    %e        打印數字的科學計數法格式
    %c        打印單個字符的ASCII碼

    修飾符
    -        左對齊
    +        右對齊
    #        顯示8進制在前面加0,顯示16進制在前面加0x

    格式符示例:
    1、以字符串格式打印/etc/passwd中的第7個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%s\n",$7}' passwd
    2、以10進制格式打印/etc/passwd中的第3個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%d\n",$3}' passwd
    3、以浮點數格式打印/etc/passwd中的第3個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%0.2f\n",$3}' passwd
    4、以16進制數格式打印/etc/passwd中的第3個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%x\n",$3}' passwd
    5、以8進制數格式打印/etc/passwd中的第3個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%o\n",$3}' passwd
    6、以科學計數法格式打印/etc/passwd中的第3個字段,以":"做爲分隔符
        awk 'BEGIN{FS=":"}{printf "%e\n",$3}' passwd

    修飾符示例:
    1、左對齊格式 -
    2、右對齊格式 +
    3、打印8進制或16進制數字是在前面加#

# printf默認沒有分隔符
[root@localhost 5.11]# awk 'BEGIN{FS=":"}{printf $1}' passwd 
rootbindaemonadmlpsyncshutdownhaltmailoperatorgamesftpnobodysystemd-networkdbuspolkitdsshdpostfixajiechronydeploynginx

# 加入換行,格式化輸出
[root@localhost 5.11]# awk 'BEGIN{FS=":"}{printf "%s\n",$1}' passwd 
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
ajie
chrony
deploy
nginx

# 使用佔位符美化輸出,默認是右對齊
[root@localhost 5.11]# awk 'BEGIN{FS=":"}{printf "%20s %20s\n",$1,$7}' /etc/passwd
                root            /bin/bash
                 bin        /sbin/nologin
              daemon        /sbin/nologin
                 adm        /sbin/nologin
                  lp        /sbin/nologin
                sync            /bin/sync
            shutdown       /sbin/shutdown
                halt           /sbin/halt
                mail        /sbin/nologin
            operator        /sbin/nologin
               games        /sbin/nologin
                 ftp        /sbin/nologin
              nobody        /sbin/nologin
     systemd-network        /sbin/nologin
                dbus        /sbin/nologin
             polkitd        /sbin/nologin
                sshd        /sbin/nologin
             postfix        /sbin/nologin
                ajie            /bin/bash
              chrony        /sbin/nologin
              deploy            /bin/bash
               nginx        /sbin/nologin

# - 減號是左對齊,+ 加號是右對齊
[root@localhost 5.11]# awk 'BEGIN{FS=":"}{printf "%-20s %-20s\n",$1,$7}' /etc/passwd
root                 /bin/bash           
bin                  /sbin/nologin       
daemon               /sbin/nologin       
adm                  /sbin/nologin       
lp                   /sbin/nologin       
sync                 /bin/sync           
shutdown             /sbin/shutdown      
halt                 /sbin/halt          
mail                 /sbin/nologin       
operator             /sbin/nologin       
games                /sbin/nologin       
ftp                  /sbin/nologin       
nobody               /sbin/nologin       
systemd-network      /sbin/nologin       
dbus                 /sbin/nologin       
polkitd              /sbin/nologin       
sshd                 /sbin/nologin       
postfix              /sbin/nologin       
ajie                 /bin/bash           
chrony               /sbin/nologin       
deploy               /bin/bash           
nginx                /sbin/nologin 
相關文章
相關標籤/搜索