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