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