shell之awk(二)printf

格式符

%s 打印字符串
%d 打印十进制数
%f 打印浮点数
%x 打印十六进制数
%o 打印八进制数
%e 打印数字的科学技术法格式
%c 打印单个字符的ASCII码

 


修饰符

- 左对齐
+ 右对齐
# 显示八进制在前面加0,显示十六进制在前面加0x

 

% awk 'BEGIN{FS=":"}{printf "%-25s %-20s\n",$1,$7}' /etc/passwd  //-25表示左对齐占25个字符,printf默认是右对齐
nobody /usr/bin/false
root /bin/sh
daemon /usr/bin/false
_uucp /usr/sbin/uucico
_taskgated /usr/bin/false
_networkd /usr/bin/false
_installassistant /usr/bin/false
_lp /usr/bin/false
_postfix /usr/bin/false
_scsd /usr/bin/false
_ces /usr/bin/false
_appstore /usr/bin/false
_mcxalr /usr/bin/false
_appleevents /usr/bin/false
_geod /usr/bin/false
_devdocs /usr/bin/false
_sandbox /usr/bin/false
_mdnsresponder /usr/bin/false
_ard /usr/bin/false
_www /usr/bin/false
_eppc /usr/bin/false
_cvs /usr/bin/false
_svn /usr/bin/false
_mysql /usr/bin/false
_sshd /usr/bin/false
_qtss /usr/bin/false
_cyrus /usr/bin/false
_mailman /usr/bin/false
_appserver /usr/bin/false
_clamav /usr/bin/false
_amavisd /usr/bin/false
_jabber /usr/bin/false
_appowner /usr/bin/false
_windowserver /usr/bin/false
_spotlight /usr/bin/false
_tokend /usr/bin/false
_securityagent /usr/bin/false
_calendar /usr/bin/false
_teamsserver /usr/bin/false
_update_sharing /usr/bin/false
_installer /usr/bin/false
_atsserver /usr/bin/false
_ftp /usr/bin/false
_unknown /usr/bin/false
_softwareupdate /usr/bin/false
_coreaudiod /usr/bin/false
_screensaver /usr/bin/false
_locationd /usr/bin/false
_trustevaluationagent /usr/bin/false
_timezone /usr/bin/false
_lda /usr/bin/false
_cvmsroot /usr/bin/false
_usbmuxd /usr/bin/false
_dovecot /usr/bin/false
_dpaudio /usr/bin/false
_postgres /usr/bin/false
_krbtgt /usr/bin/false
_kadmin_admin /usr/bin/false
_kadmin_changepw /usr/bin/false
_devicemgr /usr/bin/false
_webauthserver /usr/bin/false
_netbios /usr/bin/false
_warmd /usr/bin/false
_dovenull /usr/bin/false
_netstatistics /usr/bin/false
_avbdeviced /usr/bin/false
_krb_krbtgt /usr/bin/false
_krb_kadmin /usr/bin/false
_krb_changepw /usr/bin/false
_krb_kerberos /usr/bin/false
_krb_anonymous /usr/bin/false
_assetcache /usr/bin/false
_coremediaiod /usr/bin/false
_launchservicesd /usr/bin/false
_iconservices /usr/bin/false
_distnote /usr/bin/false
_nsurlsessiond /usr/bin/false
_displaypolicyd /usr/bin/false
_astris /usr/bin/false
_krbfast /usr/bin/false
_gamecontrollerd /usr/bin/false
_mbsetupuser /bin/bash
_ondemand /usr/bin/false
_xserverdocs /usr/bin/false
_wwwproxy /usr/bin/false
_mobileasset /usr/bin/false
_findmydevice /usr/bin/false
_datadetectors /usr/bin/false
_captiveagent /usr/bin/false
_ctkd /usr/bin/false
_applepay /usr/bin/false
_hidd /usr/bin/false
_cmiodalassistants /usr/bin/false
_analyticsd /usr/bin/false
_fpsd /usr/bin/false
_timed /usr/bin/false
_nearbyd /usr/bin/false
_reportmemoryexception /usr/bin/false
_driverkit /usr/bin/false
_diskimagesiod /usr/bin/false
_logd /usr/bin/false
_appinstalld /usr/bin/false
_installcoordinationd /usr/bin/false
_demod /usr/bin/false
_rmd /usr/bin/false
_fud /usr/bin/false
_knowledgegraphd /usr/bin/false
_coreml /usr/bin/false
_oahd /usr/bin/false
% awk 'BEGIN{FS=":"} {printf "%s\n",$7}' /etc/passwd   //以字符串格式打印/etc/passwd中的第7个字段,以":"作为分隔符
/usr/bin/false
/bin/sh
/usr/bin/false
/usr/sbin/uucico
/usr/bin/false
/usr/bin/false
/usr/bin/false
/usr/bin/false
/usr/bin/false
.
.
.
%  awk 'BEGIN{FS=":"} {printf "%-15d\n", $3}' /etc/passwd. //以十进制格式打印第3段,并且左对齐
26
27
31
32
33
54
55
56
 %  awk 'BEGIN{FS=":"} {printf "%0.2f\n", $3}' /etc/passwd. //以0.2位小数打印
26.00
27.00
31.00
32.00
33.00
54.00
55.00
56.00
59.00
60.00
65.00
67.00
70.00
71.00
72.00
73.00
74.00
75.00
76.00

 

% awk 'BEGIN{FS=":"}/root/{print $0}' /etc/passwd. //root 开头所有行
root:*:0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1:System Services:/var/root:/usr/bin/false
_cvmsroot:*:212:212:CVMS Root:/var/empty:/usr/bin/false

 

posted @ 2018-02-27 10:06  温柔的风  阅读(215)  评论(0编辑  收藏  举报