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 

猜你喜欢

转载自www.cnblogs.com/reblue520/p/10984736.html