广州市做民宿什么网站比较好,惠州响应式网站哪家好,廊坊网络公司网站,在网站上做的图表怎么放到PPT里面2019独角兽企业重金招聘Python工程师标准 六周第三次课 9.6/9.7 awk awk也是流式编辑器#xff0c;针对文档中的行来操作#xff0c;一行一行地执行。 awk比sed更强大的功能是它支持了分段。 -F选项的作用是指定分隔符#xff0c;如果不加-F选项#xff0c;… 2019独角兽企业重金招聘Python工程师标准 六周第三次课 9.6/9.7 awk awk也是流式编辑器针对文档中的行来操作一行一行地执行。 awk比sed更强大的功能是它支持了分段。 -F选项的作用是指定分隔符如果不加-F选项则以空格或者tab为分隔符。print为打印的动作用来打印某个字段。$1为第一个字段$2为第二个字段依此类推。但$0比较特殊它表示整行。 下面以为分隔符打印test.txt文件的第一段。 [rootlocalhost awk]# awk -F : {print $1} test.txt root bin daemon adm lp sync shutdown halt mail operator games ftp nobody ods pegasus systemd-network dbus polkitd apache tomcat colord abrt saslauth libstoragemgmt dirsrv rpc hsqldb unbound amandabackup pkiuser setroubleshoot postfix rtkit pulse qemu ntp radvd chrony named mysql tss usbmuxd geoclue sssd gdm rpcuser nfsnobody pcp kdcproxy ipaapi gnome-initial-setup avahi postgres dovecot dovenull sshd oprofile tcpdump tianqi aming user1 [rootlocalhost awk]# 这种打印也不是删除文本的某些段相当于sed不加-i选项的作用下面打印test.txtt的所有段。 [rootlocalhost awk]# awk -F : {print $0} test.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin chrony:x:386:384::/var/lib/chrony:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin sssd:x:384:381:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# awk可以直接打印全部文本。 [rootlocalhost awk]# awk {print $0} test.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin chrony:x:386:384::/var/lib/chrony:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin sssd:x:384:381:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 注意awk的格式-F后面紧跟单引号单引号里面为分隔符。print动作要用{}括起来否则会报错。 print可以打印自定义内容但是自定义的内容要用“”括起来。 下面创建一下测试的文件。 [rootlocalhost awk]# vim 1.txt 1 2 aa bb dd ee 保存退出。 [rootlocalhost awk]# awk {print $1} 1.txt 1 aa dd[rootlocalhost awk]# cat 1.txt 1 2 aa bb dd ee [rootlocalhost awk]# 下面以为分隔符打印test.txt文件的第134段。 [rootlocalhost awk]# awk -F : {print $1,$3,$4} test.txt root 0 0 bin 1 1 daemon 2 2 adm 3 4 lp 4 7 sync 5 0 shutdown 6 0 halt 7 0 mail 8 12 operator 11 0 games 12 100 ftp 14 50 nobody 99 99 ods 999 998 pegasus 66 65 systemd-network 192 192 dbus 81 81 polkitd 998 996 apache 48 48 tomcat 91 91 colord 997 994 abrt 173 173 saslauth 996 76 libstoragemgmt 995 993 dirsrv 389 389 rpc 32 32 hsqldb 96 96 unbound 388 388 amandabackup 33 6 pkiuser 17 17 setroubleshoot 387 387 postfix 89 89 rtkit 172 172 pulse 171 171 qemu 107 107 ntp 38 38 radvd 75 75 chrony 386 384 named 25 25 mysql 27 27 tss 59 59 usbmuxd 113 113 geoclue 385 382 sssd 384 381 gdm 42 42 rpcuser 29 29 nfsnobody 65534 65534 pcp 383 380 kdcproxy 382 379 ipaapi 381 378 gnome-initial-setup 380 377 avahi 70 70 postgres 26 26 dovecot 97 97 dovenull 379 376 sshd 74 74 oprofile 16 16 tcpdump 72 72 tianqi 1000 1000 aming 1001 1001 user1 1002 1002 [rootlocalhost awk]# [rootlocalhost awk]# awk -F : {print $1#$3#$4} test.txt root#0#0 bin#1#1 daemon#2#2 adm#3#4 lp#4#7 sync#5#0 shutdown#6#0 halt#7#0 mail#8#12 operator#11#0 games#12#100 ftp#14#50 nobody#99#99 ods#999#998 pegasus#66#65 systemd-network#192#192 dbus#81#81 polkitd#998#996 apache#48#48 tomcat#91#91 colord#997#994 abrt#173#173 saslauth#996#76 libstoragemgmt#995#993 dirsrv#389#389 rpc#32#32 hsqldb#96#96 unbound#388#388 amandabackup#33#6 pkiuser#17#17 setroubleshoot#387#387 postfix#89#89 rtkit#172#172 pulse#171#171 qemu#107#107 ntp#38#38 radvd#75#75 chrony#386#384 named#25#25 mysql#27#27 tss#59#59 usbmuxd#113#113 geoclue#385#382 sssd#384#381 gdm#42#42 rpcuser#29#29 nfsnobody#65534#65534 pcp#383#380 kdcproxy#382#379 ipaapi#381#378 gnome-initial-setup#380#377 avahi#70#70 postgres#26#26 dovecot#97#97 dovenull#379#376 sshd#74#74 oprofile#16#16 tcpdump#72#72 tianqi#1000#1000 aming#1001#1001 user1#1002#1002 [rootlocalhost awk]# 列出匹配oo的段。 [rootlocalhost awk]# awk /oo/ test.txt root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin [rootlocalhost awk]# 这跟sed的用法类似能实现grep的功能但是没有颜色显示肯定没有grep用起来方便。 awk可以让某个段去匹配~就是匹配的意思。 [rootlocalhost awk]# awk -F : $1 ~ /oo/ test.txt root:x:0:0:root:/root:/bin/bash setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin [rootlocalhost awk]# awk支持正则表达式而且不用加脱义符号。 [rootlocalhost awk]# awk -F : $1 ~ /o/ test.txt root:x:0:0:root:/root:/bin/bash daemon:x:2:2:daemon:/sbin:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown operator:x:11:0:operator:/root:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:386:384::/var/lib/chrony:/sbin/nologin geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin [rootlocalhost awk]# awk可以进行多次匹配用做分隔符先匹配一项再匹配另外一项。 [rootlocalhost awk]# awk -F : /root/ {print $1,$3} /user/ {print $3,$4} test.txt root 0 operator 11 996 76 389 389 33 6 17 17 107 107 75 75 59 59 113 113 29 29 379 376 16 16 1002 1002 [rootlocalhost awk]# [rootlocalhost awk]# awk -F : /root/ {print $1,$3} /user/ {print $1,$3,$4} test.txt root 0 operator 11 saslauth 996 76 dirsrv 389 389 amandabackup 33 6 pkiuser 17 17 qemu 107 107 radvd 75 75 tss 59 59 usbmuxd 113 113 rpcuser 29 29 dovenull 379 376 oprofile 16 16 user1 1002 1002[rootlocalhost awk]# grep -E root|user test.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 匹配root或者user的行全部打印出来 [rootlocalhost awk]# awk -F : /root|user/ {print $0} test.txt root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# awk可以用逻辑符号进行判断判断符号有精确匹配、、、、、!。值得注意的是在和数字比较时若把比较的数字用双引号引起来后那么awk不会认为是数字而认为是字符不加双引号则认为是数字。 打印第3段uid是0的行 [rootlocalhost awk]# awk -F : $30 test.txt root:x:0:0:root:/root:/bin/bash 匹配第3段uid是0的行并打印这些行的第1段。[rootlocalhost awk]# awk -F : $30 {print $1} test.txt root 匹配第3段uid大于1000的行并打印这些行的第1段。[rootlocalhost awk]# awk -F : $31000 {print $1} test.txt nfsnobody tianqi aming user1 [rootlocalhost awk]# 匹配第3段uid大于1000的行并打印这些行. [rootlocalhost awk]# awk -F : $31000 {print $0} test.txt nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 如果这个1000加上双引号那么系统就不会把它当成数字而是当成ACSII码的方式去计算的也就是说会认为这个1000是字符串。 [rootlocalhost awk]# awk -F : $31000 {print $0} test.txt daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin chrony:x:386:384::/var/lib/chrony:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin sssd:x:384:381:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 列出第7段不等于不是/sbin/nologin的行。 [rootlocalhost awk]# awk -F : $7!/sbin/nologin {print $0} test.txt root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 表示不匹配它除了针对某一段的字符按进行比较外还可以在两个段之间进行逻辑比较。 列出第3段小于第4段的行 [rootlocalhost awk]# awk -F : $3$4 test.txt adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [rootlocalhost awk]# 列出第3段等于第4段的行 [rootlocalhost awk]# awk -F : $3$4 test.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 另外还可以使用 和 || 表示 “并且” 和 “或者” 的意思 列出第3段大于5加双引号的5算是字符并且小于7的行。 [rootlocalhost awk]# awk -F : $35$37 test.txt shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin [rootlocalhost awk]# 列出第3段大于1000或者第7段是/sbin/nologin的行。 [rootlocalhost awk]# awk -F : $31000 || $7/sbin/nologin test.txt bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin qemu:x:107:107:qemu user:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin radvd:x:75:75:radvd user:/:/sbin/nologin chrony:x:386:384::/var/lib/chrony:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin sssd:x:384:381:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 列出第3段大于1000或者第7段包含bash的行。 [rootlocalhost awk]# awk -F : $31000 || $7~/bash/ test.txt root:x:0:0:root:/root:/bin/bash amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash aming:x:1001:1001::/home/aming:/bin/bash user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# awk的内置变量 awk常用的变量有 OFS和-F选项有类似的功能也是用来定义分隔符的但是它在输出的时候定义。 NF用分隔符分隔后一共有多少段。 NR行数。 -F是分段前的分隔符OFS是用来指定print时候要用到的分隔符。 列出第3段大于1000或者第7段包含bash的行并打印出这些行的第137部分并且以#将这些部分分割开。 [rootlocalhost awk]# awk -F : {OFS#} $31000 || $7~/bash/ {print $1,$3,$7} test.txt root#0#/bin/bash amandabackup#33#/bin/bash nfsnobody#65534#/sbin/nologin postgres#26#/bin/bash tianqi#1000#/bin/bash aming#1001#/bin/bash user1#1002#/bin/bash [rootlocalhost awk]# 先写OFS再写条件再写print。 不写条件的话就是打印所有行的第137部分。 [rootlocalhost awk]# awk -F : {OFS#} {print $1,$3,$7} test.txt root#0#/bin/bash bin#1#/sbin/nologin daemon#2#/sbin/nologin adm#3#/sbin/nologin lp#4#/sbin/nologin sync#5#/bin/sync shutdown#6#/sbin/shutdown halt#7#/sbin/halt mail#8#/sbin/nologin operator#11#/sbin/nologin games#12#/sbin/nologin ftp#14#/sbin/nologin nobody#99#/sbin/nologin ods#999#/sbin/nologin pegasus#66#/sbin/nologin systemd-network#192#/sbin/nologin dbus#81#/sbin/nologin polkitd#998#/sbin/nologin apache#48#/sbin/nologin tomcat#91#/sbin/nologin colord#997#/sbin/nologin abrt#173#/sbin/nologin saslauth#996#/sbin/nologin libstoragemgmt#995#/sbin/nologin dirsrv#389#/sbin/nologin rpc#32#/sbin/nologin hsqldb#96#/sbin/nologin unbound#388#/sbin/nologin amandabackup#33#/bin/bash pkiuser#17#/sbin/nologin setroubleshoot#387#/sbin/nologin postfix#89#/sbin/nologin rtkit#172#/sbin/nologin pulse#171#/sbin/nologin qemu#107#/sbin/nologin ntp#38#/sbin/nologin radvd#75#/sbin/nologin chrony#386#/sbin/nologin named#25#/sbin/nologin mysql#27#/sbin/nologin tss#59#/sbin/nologin usbmuxd#113#/sbin/nologin geoclue#385#/sbin/nologin sssd#384#/sbin/nologin gdm#42#/sbin/nologin rpcuser#29#/sbin/nologin nfsnobody#65534#/sbin/nologin pcp#383#/sbin/nologin kdcproxy#382#/sbin/nologin ipaapi#381#/sbin/nologin gnome-initial-setup#380#/sbin/nologin avahi#70#/sbin/nologin postgres#26#/bin/bash dovecot#97#/sbin/nologin dovenull#379#/sbin/nologin sshd#74#/sbin/nologin oprofile#16#/sbin/nologin tcpdump#72#/sbin/nologin tianqi#1000#/bin/bash aming#1001#/bin/bash user1#1002#/bin/bash [rootlocalhost awk]# 我们也可以加语句进行修饰这里就使用到了if。 [rootlocalhost awk]# awk -F : {OFS#} {if ($31000) {print $1,$2,$3,$4}} test.txt nfsnobody#x#65534#65534 aming#x#1001#1001 user1#x#1002#1002 [rootlocalhost awk]# 也可以写成下面的形式只是有点生硬。 [rootlocalhost awk]# awk -F : {OFS#} $31000 {print $1,$2,$3,$4} test.txt nfsnobody#x#65534#65534 aming#x#1001#1001 user1#x#1002#1002 [rootlocalhost awk]# 在列出的结果中前面显示行号加冒号NR的意思是加行号。 [rootlocalhost awk]# awk -F : {print NR: $0} test.txt 1:root:x:0:0:root:/root:/bin/bash 2:bin:x:1:1:bin:/bin:/sbin/nologin 3:daemon:x:2:2:daemon:/sbin:/sbin/nologin 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6:sync:x:5:0:sync:/sbin:/bin/sync 7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8:halt:x:7:0:halt:/sbin:/sbin/halt 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin 15:pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin 16:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 17:dbus:x:81:81:System message bus:/:/sbin/nologin 18:polkitd:x:998:996:User for polkitd:/:/sbin/nologin 19:apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin 20:tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin 21:colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin 22:abrt:x:173:173::/etc/abrt:/sbin/nologin 23:saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin 24:libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin 25:dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin 26:rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin 27:hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin 28:unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin 29:amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash 30:pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin 31:setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin 32:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 33:rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin 34:pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin 35:qemu:x:107:107:qemu user:/:/sbin/nologin 36:ntp:x:38:38::/etc/ntp:/sbin/nologin 37:radvd:x:75:75:radvd user:/:/sbin/nologin 38:chrony:x:386:384::/var/lib/chrony:/sbin/nologin 39:named:x:25:25:Named:/var/named:/sbin/nologin 40:mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin 41:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin 42:usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin 43:geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin 44:sssd:x:384:381:User for sssd:/:/sbin/nologin 45:gdm:x:42:42::/var/lib/gdm:/sbin/nologin 46:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 47:nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin 48:pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin 49:kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin 50:ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin 51:gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin 52:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 53:postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash 54:dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin 55:dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin 56:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 57:oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin 58:tcpdump:x:72:72::/:/sbin/nologin 59:tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash 60:aming:x:1001:1001::/home/aming:/bin/bash 61:user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 在列出的结果中前面显示该行有多少段加冒号NF的意思是加段数。 [rootlocalhost awk]# awk -F : {print NF: $0} test.txt 7:root:x:0:0:root:/root:/bin/bash 7:bin:x:1:1:bin:/bin:/sbin/nologin 7:daemon:x:2:2:daemon:/sbin:/sbin/nologin 7:adm:x:3:4:adm:/var/adm:/sbin/nologin 7:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 7:sync:x:5:0:sync:/sbin:/bin/sync 7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 7:halt:x:7:0:halt:/sbin:/sbin/halt 7:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 7:operator:x:11:0:operator:/root:/sbin/nologin 7:games:x:12:100:games:/usr/games:/sbin/nologin 7:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 7:nobody:x:99:99:Nobody:/:/sbin/nologin 7:ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin 7:pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin 7:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 7:dbus:x:81:81:System message bus:/:/sbin/nologin 7:polkitd:x:998:996:User for polkitd:/:/sbin/nologin 7:apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin 7:tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin 7:colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin 7:abrt:x:173:173::/etc/abrt:/sbin/nologin 7:saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin 7:libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin 7:dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin 7:rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin 7:hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin 7:unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin 7:amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash 7:pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin 7:setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin 7:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 7:rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin 7:pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin 7:qemu:x:107:107:qemu user:/:/sbin/nologin 7:ntp:x:38:38::/etc/ntp:/sbin/nologin 7:radvd:x:75:75:radvd user:/:/sbin/nologin 7:chrony:x:386:384::/var/lib/chrony:/sbin/nologin 7:named:x:25:25:Named:/var/named:/sbin/nologin 7:mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin 7:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin 7:usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin 7:geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin 7:sssd:x:384:381:User for sssd:/:/sbin/nologin 7:gdm:x:42:42::/var/lib/gdm:/sbin/nologin 7:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 7:nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin 7:pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin 7:kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin 7:ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin 7:gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin 7:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 7:postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash 7:dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin 7:dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin 7:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 7:oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin 7:tcpdump:x:72:72::/:/sbin/nologin 7:tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash 7:aming:x:1001:1001::/home/aming:/bin/bash 7:user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 下面改一下test.txt将第1行改成6段的。 [rootlocalhost awk]# vim test.txt [rootlocalhost awk]# awk -F : {print NF: $0} test.txt 6:rootx:0:0:root:/root:/bin/bash 7:bin:x:1:1:bin:/bin:/sbin/nologin 7:daemon:x:2:2:daemon:/sbin:/sbin/nologin 7:adm:x:3:4:adm:/var/adm:/sbin/nologin 7:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 7:sync:x:5:0:sync:/sbin:/bin/sync 7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 7:halt:x:7:0:halt:/sbin:/sbin/halt 7:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 7:operator:x:11:0:operator:/root:/sbin/nologin 7:games:x:12:100:games:/usr/games:/sbin/nologin 7:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 7:nobody:x:99:99:Nobody:/:/sbin/nologin 7:ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin 7:pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin 7:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 7:dbus:x:81:81:System message bus:/:/sbin/nologin 7:polkitd:x:998:996:User for polkitd:/:/sbin/nologin 7:apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin 7:tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin 7:colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin 7:abrt:x:173:173::/etc/abrt:/sbin/nologin 7:saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin 7:libstoragemgmt:x:995:993:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin 7:dirsrv:x:389:389:user for 389-ds-base:/usr/share/dirsrv:/sbin/nologin 7:rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin 7:hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin 7:unbound:x:388:388:Unbound DNS resolver:/etc/unbound:/sbin/nologin 7:amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash 7:pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin 7:setroubleshoot:x:387:387::/var/lib/setroubleshoot:/sbin/nologin 7:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 7:rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin 7:pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin 7:qemu:x:107:107:qemu user:/:/sbin/nologin 7:ntp:x:38:38::/etc/ntp:/sbin/nologin 7:radvd:x:75:75:radvd user:/:/sbin/nologin 7:chrony:x:386:384::/var/lib/chrony:/sbin/nologin 7:named:x:25:25:Named:/var/named:/sbin/nologin 7:mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin 7:tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin 7:usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin 7:geoclue:x:385:382:User for geoclue:/var/lib/geoclue:/sbin/nologin 7:sssd:x:384:381:User for sssd:/:/sbin/nologin 7:gdm:x:42:42::/var/lib/gdm:/sbin/nologin 7:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin 7:nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin 7:pcp:x:383:380:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin 7:kdcproxy:x:382:379:IPA KDC Proxy User:/:/sbin/nologin 7:ipaapi:x:381:378:IPA Framework User:/:/sbin/nologin 7:gnome-initial-setup:x:380:377::/run/gnome-initial-setup/:/sbin/nologin 7:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 7:postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash 7:dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin 7:dovenull:x:379:376:Dovecots unauthorized user:/usr/libexec/dovecot:/sbin/nologin 7:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 7:oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin 7:tcpdump:x:72:72::/:/sbin/nologin 7:tianqi:x:1000:1000:tianqi:/home/tianqi:/bin/bash 7:aming:x:1001:1001::/home/aming:/bin/bash 7:user1:x:1002:1002::/home/user1:/bin/bash [rootlocalhost awk]# 把行数小于等于10的列出来也就是打印前十行。 [rootlocalhost awk]# awk -F : NR10 test.txt rootx:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin [rootlocalhost awk]# 打印行数小于等于10且第1段包含root或者sync的行。 [rootlocalhost awk]# awk -F : NR10 $1 ~ /root|sync/ test.txt rootx:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync [rootlocalhost awk]# 打印段数等于6的行且第1段包含root或者sync。 [rootlocalhost awk]# awk -F : NF6 $1 ~ /root|sync/ test.txt rootx:0:0:root:/root:/bin/bash [rootlocalhost awk]# 只有之前改动的第1行符合要求。 显示该行的行号所对应的段数内容如第一行就显示第一段加冒号加第七段。 [rootlocalhost awk]# awk -F : {print $NR:$NF} test.txt rootx:/bin/bash x:/sbin/nologin 2:/sbin/nologin 4:/sbin/nologin lp:/sbin/nologin /sbin:/bin/sync /sbin/shutdown:/sbin/shutdown :/sbin/halt :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/bin/bash :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/bin/bash :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/sbin/nologin :/bin/bash :/bin/bash :/bin/bash [rootlocalhost awk]# 把前三行的第一段改成root [rootlocalhost awk]# head -n3 /etc/passwd | awk -F : $1root root x 0 0 root /root /bin/bash root x 1 1 bin /bin /sbin/nologin root x 2 2 daemon /sbin /sbin/nologin [rootlocalhost awk]# 上面的是赋值前3行的第1段都变成了root。之前两个是匹配的意思只能匹配出第1行。 [rootlocalhost awk]# head -n3 /etc/passwd | awk -F : $1root root:x:0:0:root:/root:/bin/bash [rootlocalhost awk]# [rootlocalhost awk]# head -n3 test.txt | awk -F : $1root root 0 0 root /root /bin/bash root x 1 1 bin /bin /sbin/nologin root x 2 2 daemon /sbin /sbin/nologin 上面的分隔符没有了再用OFS定义一下就行了。[rootlocalhost awk]# head -n3 test.txt | awk -F : {OFS:} $1root root:0:0:root:/root:/bin/bash root:x:1:1:bin:/bin:/sbin/nologin root:x:2:2:daemon:/sbin:/sbin/nologin [rootlocalhost awk]# 求出所有行的第三段的和。tot是求和的意思第一个大括号里的是一个循环式每行都循环一次第一行就是0第三段第二行是第一行的第三段加第二行的第三段以此类推。求和完毕以后END结束然后打印tot的和。 [rootlocalhost awk]# awk -F : {(tottot$3)}; END {print tot} test.txt 80049 [rootlocalhost awk]# 总结上面这些仅仅是正则表达式中最基本的内容sed和awk并没有深入讲解但足以满足日常工作需要。碰到复杂的再研究便是。 友情链接阿铭Linux 转载于:https://my.oschina.net/u/3744518/blog/1608818