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