28.awk

9.6/9.7awk

 

 

9.6 awk上:

支持分段

例如,passwd文件比较有规律,以冒号作为间隔。那我们可以用awk来分段匹配。就是root为一段,数字为一段这样吧他匹配出来

比grep sed的强大之处在于可以以段的匹配出来

并且不用加特殊的字符,例如脱意、花括号,问号等等

 

~1. awk -F ':' '{print $1}' test.txt -F指定分隔符

表示打印这个文件的第一段,以:作为间隔

$0表示所有段

~2. 不加-F awk '{print $1}' test.txt

如果没有指定间隔符,他将默认空格为间隔

~3. 不加-F

awk '{print $0}' test.txt 可以打印所有的这个文件,相当于cat

~4. 不加-F awk '{print $1,$2,$3}' test.txt

默认分割,打印出第一段第二段第三段。不加-F指定的话,就默认空格间隔

~5. awk -F ':' '{print $1"#"$2"#"$3}' test.txt

打印出来的一二三段以#作为间隔,列出来

 

~6. awk的匹配功能

awk '/oo/' test.txt

将带有oo的全部打印出来

~7. awk -F ‘:’ ‘$1 ~ /oo/' test.txt

指定以:作为间隔的第一段,匹配出带有oo的字符。需要加 ~

~8. awk -F ':' '$1 ~ /o+/' test,txt

同样支持正则表达式

~9. awk -F ':' '/root/ {print $1,$2} /user/ {print $1,$2,$3}' test.txt

支持多个表达式一起写

将带有root的,以:作为间隔的第一段第2段匹配出来。将带有user的,以:作为间隔的第一二三段匹配出来

~10. awk -F ':' '/root|user/ {print $0}' test.txt

将所有段,带有root和user的匹配出来

 

针对数学预算表达式的

~11. awk -F ':' '$3==0' test.txt

以:为间隔,第三段等于0的,打印出来。不加{prient}就代表所以行。第三段等于0要加两个等于号,为了区分变量

awk -F ':' '$3==0 {print $0}' test.txt

意思同上,加了{print $0}就表示针对的是所有段

~12. awk -F ':' '$3>=1000 {print $0}'test.txt

以:为间隔,第三段大于等于1000的,打印出来。针对所有行

~13. awk -F ':' '$3>="1000" {print $0}'test.txt

意思同上,但是加了双引号。即代表他会以阿斯玛排序的模式式打印出来,并且如果有五位数的也会匹配出来,阿斯玛定律他只匹配字符的前四段。如100011111,一样会匹配出来,因为前四段符合要求

~14. awk -F ':' '$7!="/sbin/nologin" test.txt

!=代表不等于。第七段不等于/sbin/nologin的打印出来,针对所有行。需注意带/需要用双引号引起来

 

 

 

 

 

实例:

1.

[root@afeilinux-01 awk]# awk -F ':' '{print $1}' test.txt 需注意$要写在数字前面,$1表示第一段

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
chrony
tss
mysql
php-fpm
apache
rpc
rpcuser
nfsnobody
virftp
pure-ftp
nginx
zabbix

2.

[root@afeilinux-01 awk]# cat 1.txt 先看一下这个文件

111 222

aaa bbb

[root@afeilinux-01 awk]# awk '{print $1}' 1.txt 默认以空格作为间隔

111

aaa

 

3.

[root@afeilinux-01 awk]# awk '{print $0}' test.txt 打印所有行。类似于cat

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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

 

4.

[root@afeilinux-01 awk]# awk -F ':' '{print $1,$2,$3}' test.txt 这里指定了间隔为:

root x 0
bin x 1
daemon x 2
adm x 3
lp x 4
sync x 5
shutdown x 6
halt x 7
mail x 8
operator x 11
games x 12
ftp x 14
nobody x 99
systemd-network x 192
dbus x 81
polkitd x 999
sshd x 74
postfix x 89
chrony x 998
tss x 59
mysql x 1000
php-fpm x 1001
apache x 48
rpc x 32
rpcuser x 29
nfsnobody x 65534
virftp x 1002
pure-ftp x 1010
nginx x 997
zabbix x 996

 

5.

[root@afeilinux-01 awk]# awk -F ':' '{print $1"#"$2"-"$3"?"}' test.txt 指定第一二三段以什么符号列出来

#-?
root#x-0?
bin#x-1?
daemon#x-2?
adm#x-3?
lp#x-4?
sync#x-5?
shutdown#x-6?
halt#x-7?
mail#x-8?
operator#x-11?
games#x-12?
ftp#x-14?
nobody#x-99?
systemd-network#x-192?
dbus#x-81?
polkitd#x-999?
sshd#x-74?
postfix#x-89?
chrony#x-998?
tss#x-59?
mysql#x-1000?
php-fpm#x-1001?
apache#x-48?
rpc#x-32?
rpcuser#x-29?
nfsnobody#x-65534?
virftp#x-1002?
pure-ftp#x-1010?
nginx#x-997?
zabbix#x-996?
#-?

 

6.

[root@afeilinux-01 awk]# awk '/00/' test.txt 因针对所有,所以直接写就好

games:x:12:100:games:/usr/games:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
virftp:x:1002:1002::/home/virftp:/sbin/nologin

 

7.

[root@afeilinux-01 awk]# awk -F ':' '$1 ~ /oo/' test.txt 需要加 ~

root:x:0:0:root:/root:/bin/bash

 

8.

[root@afeilinux-01 awk]# awk -F ':' '$1 ~ /o+/' test.txt 一个o或两个0的

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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

 

9.

[root@afeilinux-01 awk]# awk -F ':' '/root/ {print $1,$2} /sshd/ {print $1,$3,$4}' test.txt

root x
operator x
sshd 74 74

10.

[root@afeilinux-01 awk]# awk -F ':' '/bin|sbin/ {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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

 

11.

[root@afeilinux-01 awk]# awk -F ':' '$3==0' test.txt

root:x:0:0:root:/root:/bin/bash

[root@afeilinux-01 awk]# awk -F ':' '$3==0 {print $0}' test.txt 加了{print $0},针对所有段

root:x:0:0:root:/root:/bin/bash

dadain:x:0:1:bin:/bin:/sbin/NOLogin

on:/sbin:0:/sbin/nologin

halt:x:0:0:halt:/sbin:/sbin/halt

nobody:x:0:99:Noboooooooody:/:/sbin/nol:oo1:0gin

 

12.

[root@afeilinux-01 awk]# awk -F ':' '$3>=1000' test.txt 加不加{print $0}其实是一样的

root:x:0:0:root:/root:/bin/bash
[root@afeilinux-01 awk]#  awk -F ':' '$3>=1000' test.txt 
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash

[root@afeilinux-01 awk]# awk -F ':' '$3>=1000 {print $0}' test.txt 加不加{print $0}其实是一样的

root:x:0:0:root:/root:/bin/bash
[root@afeilinux-01 awk]#  awk -F ':' '$3>=1000' test.txt 
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
[root@afeilinux-01 awk]# awk -F ':' '$3>=1000 {print $0}' test.txt
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash

 

13.

[root@afeilinux-01 awk]# awk -F ':' '$3>="1000" {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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

 

14.

[root@afeilinux-01 awk]# awk -F ':' '$7!="/sbin/nologin"' test.txt !=代表不等于

root:x:2000:0:root:/root:/bin/bash

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1300:1:bin:/bin:/sbin/NOLogin

daemon:x:2:2:daem

dfasd:r4134o:reqreqw

sdasdas:rgo:

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

9.6 awk下:

 

 

除了数字、字符之外,还可以两个字段,相互的去比较

 

以下用到的 print需要的内置变量

OFS print的时候指定打印的分割符 (详细见~4.)

NR 表示行,print的时候打印行,并显示行号。跟grep -n差不多(详细见~5.)

NF 表示段,print的时候打印段,并显示段号(详细见~5.)

 

 

~1. awk -F ':' '$3<$4' test.txt

以:为间隔,$3小于$4的可直接这样写

awk -F ':' '$3==$4' test.txt

$3等于$4的

~2. awk -F ':' '$3>"5" && $3<"7"' test.txt

也可以多额命令一起满足

$3大于5小于7的,并且数字5和7 要用双引号引起来

注意此时使用了双引号,根据阿斯玛定律匹配

~3. awk -F ':' '$3<1000 || $7=="/sbin/nologin"' test.txt

多项同时满足

$3小于1000,和 $7等于/sbin/nologin的

注意此时,数字没有双引号,只代表数字本身,非阿斯玛

awk -F ':' '$3<1000 ||$7 ~ /bash/' test.txt

~ 表示指定带有bash这个字符的

满足前面的,和第7段带有bsah,需用/bash/

~4. awk -F ':' '{OFS="#"} $3<1000 || $7 ~ /bash/ {print $1,$3,$7}' test.txt

{OFS="#"} 表示列出的以#为分隔符

$3<1000 || $7 ~ /bash/ 然后在写条件

{print $1,$3,$7} 然后在写print语句

该表示,满足该条件、以#号为分隔符、打印出第一三七段

也可以不写需满足的条件

awk -F ':' '{OFS="#" } {print $1,$2,$3}' test.txt

以上的正规写法为:

awk -F ':' '{OFS="#"} {if ($3<1000 || $7 ~ /bash/) {print $1,$3,$7}}' test.txt

if为判断的意思

满足条件的需加if,并将后面的条件用括号括起来,然后在把if语句和后面的print语句的花括号一起用花括号括起来

~5. awk -F ':' '{print NR"#" $0}' test.txt

awk -F ':' '{print NF"#" $o}' test.txt

awk -F ':' 'NR<=10' test.txt

可作为判断条件,行小于等于10,也就是显示10行。类似于sed -n '1,10'p

awk -F ':' 'NR<=10 && /root|sync/' test.txt

也可加&&,满足多项条件

前十行并且带有root或者sync的

NR和NF的使用方法一样,就不做演练了

~6. awk -F ':' '$1="root'' test.txt

一个等于号为赋值

awk -F ':' '$1=="root"' test.txt

两个等于号为等于,也就是真能把他匹配出来

~7. awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt

以为这个文件所有的第三段求和

tot表示一个循环,默认是0.tot+$3即表示,第3段循环相加。并赋值这个循环为tot。最后,在print tot

 

 

实例:

1.

[root@afeilinux-01 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

[root@afeilinux-01 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
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash

 

2.

[root@afeilinux-01 awk]# awk -F ':' '$3>"1" && $3<"7"' 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
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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash

 

3.

[root@afeilinux-01 awk]# awk -F ':' '$3<1000 || $7=="/sbin/nologin"' 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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

[root@afeilinux-01 awk]# awk -F ':' '$3>1000 || $7 ~ /gin/' test.txt 指定第7段带有gin,要用 ~

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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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
virftp:x:1002:1002::/home/virftp:/sbin/nologin
pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

 

4.

[root@afeilinux-01 awk]# awk -F ':' '{OFS="#"} $3<1000 || $7 ~ /bash/ {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
systemd-network#192#/sbin/nologin
dbus#81#/sbin/nologin
polkitd#999#/sbin/nologin
sshd#74#/sbin/nologin
postfix#89#/sbin/nologin
chrony#998#/sbin/nologin
tss#59#/sbin/nologin
mysql#1000#/bin/bash
php-fpm#1001#/bin/bash
apache#48#/sbin/nologin
rpc#32#/sbin/nologin
rpcuser#29#/sbin/nologin
pure-ftp#1010#/bin/bash
nginx#997#/sbin/nologin
zabbix#996#/sbin/nologin
##

 

5.

[root@afeilinux-01 awk]# awk -F ':' '{print NR"#" $0}' test.txt NR后不加“#‘就代表不指定行号后的间隔符

1#root:x:2000:0:root:/root:/bin/bash

2#241:rnjo:41234123

3#asdas:r3o:asda

4#dadain:x:1300:1:bin:/bin:/sbin/NOLogin

5#daemon:x:4:6:daem

 

[root@afeilinux-01 awk]# awk -F ':' '{print NF"#" $o}' test.txt NF后不加“#‘就代表不指定段号的间隔符

0#
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#systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
7#dbus:x:81:81:System message bus:/:/sbin/nologin
7#polkitd:x:999:998:User for polkitd:/:/sbin/nologin
7#sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
7#postfix:x:89:89::/var/spool/postfix:/sbin/nologin
7#chrony:x:998:996::/var/lib/chrony:/sbin/nologin
7#tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
7#mysql:x:1000:1000::/home/mysql:/bin/bash
7#php-fpm:x:1001:1001::/home/php-fpm:/bin/bash
7#apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
7#rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/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#virftp:x:1002:1002::/home/virftp:/sbin/nologin
7#pure-ftp:x:1010:1010::/home/pure-ftp:/bin/bash
7#nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
7#zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
0#

 

[root@afeilinux-01 awk]# awk -F ':' 'NR<=5' 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

 

[root@afeilinux-01 awk]# awk -F ':' 'NR<=10 && /root|sync/' test.txt 加&&的用法

root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync

 

6.

[root@afeilinux-01 awk]# awk -F ':' '$1=="root"' test.txt 两个==即等于,也就是匹配出来

root:x:0:0:root:/root:/bin/bash

[root@afeilinux-01 awk]# awk -F ':' '$1="wx"' test.txt 一个=即为赋值,$1赋值为wx

会发现分隔符没有了,定义OPS就可以了

wx
wx x 0 0 root /root /bin/bash
wx x 1 1 bin /bin /sbin/nologin
wx x 2 2 daemon /sbin /sbin/nologin
wx x 3 4 adm /var/adm /sbin/nologin
wx x 4 7 lp /var/spool/lpd /sbin/nologin
wx x 5 0 sync /sbin /bin/sync
wx x 6 0 shutdown /sbin /sbin/shutdown
wx x 7 0 halt /sbin /sbin/halt
wx x 8 12 mail /var/spool/mail /sbin/nologin
wx x 11 0 operator /root /sbin/nologin
wx x 12 100 games /usr/games /sbin/nologin
wx x 14 50 FTP User /var/ftp /sbin/nologin
wx x 99 99 Nobody / /sbin/nologin
wx x 192 192 systemd Network Management / /sbin/nologin
wx x 81 81 System message bus / /sbin/nologin
wx x 999 998 User for polkitd / /sbin/nologin
wx x 74 74 Privilege-separated SSH /var/empty/sshd /sbin/nologin
wx x 89 89  /var/spool/postfix /sbin/nologin
wx x 998 996  /var/lib/chrony /sbin/nologin
wx x 59 59 Account used by the trousers package to sandbox the tcsd daemon /dev/null /sbin/nologin
wx x 1000 1000  /home/mysql /bin/bash
wx x 1001 1001  /home/php-fpm /bin/bash
wx x 48 48 Apache /usr/share/httpd /sbin/nologin
wx x 32 32 Rpcbind Daemon /var/lib/rpcbind /sbin/nologin
wx x 29 29 RPC Service User /var/lib/nfs /sbin/nologin
wx x 65534 65534 Anonymous NFS User /var/lib/nfs /sbin/nologin
wx x 1002 1002  /home/virftp /sbin/nologin
wx x 1010 1010  /home/pure-ftp /bin/bash
wx x 997 995 Nginx web server /var/lib/nginx /sbin/nologin
wx x 996 994 Zabbix Monitoring System /var/lib/zabbix /sbin/nologin
wx

[root@afeilinux-01 awk]# awk -F ':' '{OFS="#"} $1="wx"' test.txt 定义OFS,设置分隔符

wx
wx#x#0#0#root#/root#/bin/bash
wx#x#1#1#bin#/bin#/sbin/nologin
wx#x#2#2#daemon#/sbin#/sbin/nologin
wx#x#3#4#adm#/var/adm#/sbin/nologin
wx#x#4#7#lp#/var/spool/lpd#/sbin/nologin
wx#x#5#0#sync#/sbin#/bin/sync
wx#x#6#0#shutdown#/sbin#/sbin/shutdown
wx#x#7#0#halt#/sbin#/sbin/halt
wx#x#8#12#mail#/var/spool/mail#/sbin/nologin
wx#x#11#0#operator#/root#/sbin/nologin
wx#x#12#100#games#/usr/games#/sbin/nologin
wx#x#14#50#FTP User#/var/ftp#/sbin/nologin
wx#x#99#99#Nobody#/#/sbin/nologin
wx#x#192#192#systemd Network Management#/#/sbin/nologin
wx#x#81#81#System message bus#/#/sbin/nologin
wx#x#999#998#User for polkitd#/#/sbin/nologin
wx#x#74#74#Privilege-separated SSH#/var/empty/sshd#/sbin/nologin
wx#x#89#89##/var/spool/postfix#/sbin/nologin
wx#x#998#996##/var/lib/chrony#/sbin/nologin
wx#x#59#59#Account used by the trousers package to sandbox the tcsd daemon#/dev/null#/sbin/nologin
wx#x#1000#1000##/home/mysql#/bin/bash
wx#x#1001#1001##/home/php-fpm#/bin/bash
wx#x#48#48#Apache#/usr/share/httpd#/sbin/nologin
wx#x#32#32#Rpcbind Daemon#/var/lib/rpcbind#/sbin/nologin
wx#x#29#29#RPC Service User#/var/lib/nfs#/sbin/nologin
wx#x#65534#65534#Anonymous NFS User#/var/lib/nfs#/sbin/nologin
wx#x#1002#1002##/home/virftp#/sbin/nologin
wx#x#1010#1010##/home/pure-ftp#/bin/bash
wx#x#997#995#Nginx web server#/var/lib/nginx#/sbin/nologin
wx#x#996#994#Zabbix Monitoring System#/var/lib/zabbix#/sbin/nologin
wx

 

7.

[root@afeilinux-01 awk]# awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt 第三段求和 ,tot的用法

74313

 

转载于:https://my.oschina.net/u/3866192/blog/3099248

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值