- 命令名称:awk -F: ‘NR==1{print $1}’ passwd
作用:打印第一行第一列的字符
实例:
[root@zhangruilin ~]# awk -F: 'NR==1{print $1}' passwd
root
- 命令名称:awk -F: ‘NR==1{print $(NF)}’ passwd
作用:将passwd的第一行的最后一列打印出来
实例:
[root@zhangruilin ~]# awk -F: 'NR==1{print $(NF)}' passwd
/bin/bash
- 命令名称:awk -F: ‘NR==1{print $(NF-1)}’ passwd
作用:将passwd的第一行的倒数第二列打印出来
实例:
[root@zhangruilin ~]# awk -F: 'NR==1{print $(NF-1)}' passwd
/root
- 命令名称: ip a|grep ‘inet ‘|awk -F’[ /]+’ ‘NR==2{print $3}’
作用:查看ip并且过滤出inet的第二行ip地址
实例:
[root@zhangruilin ~]# ip a|grep 'inet '|awk -F'[ /]+' 'NR==2{print $3}'
192.168.90.128
- 命令名称:awk ‘/J.lulu/{print $2}’ chengji
作用:查看成绩文件以J.lulu开头并且打印第二列的字符
实例:
[root@zhangruilin ~]# awk '/J.lulu/{print $2}' chengji
06/99
- 命令名称: awk ‘/J.lulu/{print $2}’ chengji|tee helld.txt
作用:打印J.lulu的第二列的字符并存放在helld.txt文件里
实例:
[root@zhangruilin ~]# awk '/J.lulu/{print $2}' chengji|tee helld.txt
06/99
- 命令名称: awk ‘BEGIN{print “name date”} {print $1,$2} END{print “END”}’ chengji
作用:打印第一列和第二列的所有字符,并且开头是name date 结尾是END
实例;
[root@zhangruilin ~]# awk 'BEGIN{print "name date"} {print $1,$2} END{print "END"}' chengji
name date
M.Tansley 05/99
J.lulu 06/99
J.abcu 06/99
A.haha 09/19
B.kaka 10/19
END
- 命令名称:awk -f test.awk chengji
作用:加-f是执行脚本里面的内容
实例:
[root@zhangruilin ~]# cat test.awk
#!/usr/bin/awk
{print $2}
[root@zhangruilin ~]# awk -f test.awk chengji
05/99
06/99
06/99
09/19
10/19
- 命令名称:awk ‘{print $1"\t"$3}’ chengji
作用:打印第一列和第三列并且以tab隔开
实例:
[root@zhangruilin ~]# awk '{print $1"\t"$3}' chengji
M.Tansley 48311
J.lulu 48317
J.abcu 48317
A.haha 50000
B.kaka 50001
- 命令名称:awk ‘/[Gg]reen/{print $(NF-1)}’ chengji
作用:打印cehngji文件的G和g开头的绿带并且打印倒数第二列
实例:
[root@zhangruilin ~]# awk '/[Gg]reen/{print $(NF-1)}' chengji
40
24
24
- 命令名称: awk ‘{if($5<20) print $0}’ chengji
作用:打印chengji文件如果第5列的字符小于20那么就打印一整行
实例:
[root@zhangruilin ~]# awk '{if($5<20) print $0}' chengji
M.Tansley 05/99 48311 Green 8 40 44
J.lulu 06/99 48317 green 9 24 26
J.abcu 06/99 48317 green 9 24 26
- 命令名称:awk ‘$3 ~ /50000/{print $0}’ chengji
作用:打印chengji文件第三列等于50000就打印一整行
实例:
[root@zhangruilin ~]# awk '$3 ~ /50000/{print $0}' chengji
A.haha 09/19 50000 Blue 20 50 55
- 命令名称:awk ‘$4 ~ /(Green|green)/’ chengji
作用:打印成绩的第4列是Green和green的
实例:
[root@zhangruilin ~]# awk '$4 ~ /(Green|green)/' chengji
M.Tansley 05/99 48311 Green 8 40 44
J.lulu 06/99 48317 green 9 24 26
J.abcu 06/99 48317 green 9 24 26
- 命令名称:awk ‘/^A/’ chengji
作用:打印成绩以A开头的所有
实例:
[root@zhangruilin ~]# awk '/^A/' chengji
A.haha 09/19 50000 Blue 20 50 55
- 命令名称:awk ‘$1 ~ /A.haha/ && $4 ~ /Blue/’ chengji
作用:打印chengji文件的第一列是A.haha并且第4lie是Blue的所有
实例:
[root@zhangruilin ~]# awk '$1 ~ /A.haha/ && $4 ~ /Blue/' chengji
A.haha 09/19 50000 Blue 20 50 55
- 命令名称:awk ‘END{print FNR}’ passwd
作用:查看passwd文件的行数
实例:
[root@zhangruilin ~]# awk 'END{print FNR}' passwd
31
- 命令名称:awk -F: ‘{print NF}’ passwd
作用:显示passwd每一列的行数
实例:
[root@zhangruilin ~]# awk -F: '{print NF}' passwd
7
7
7
7
7
7
7
7
- 命令名称:awk -F: ‘NR==2’ passwd
作用:显示passwd的第二行内容
实例:
[root@zhangruilin ~]# awk -F: 'NR==2' passwd
bin:x:1:1:bin:/bin:/sbin/nologin
- 命令名称: awk -F: ‘{print NF,NR,$0}’ passwd
作用:查看passwd的有多少列和有多少行
实例:
[root@zhangruilin ~]# awk -F: '{print NF,NR,$0}' passwd
7 1 root:x:0:0:root:/root:/bin/bash
7 2 bin:x:1:1:bin:/bin:/sbin/nologin
7 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
7 4 adm:x:3:4:adm:/var/adm:/sbin/nologin
7 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7 6 sync:x:5:0:sync:/sbin:/bin/sync
7 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
7 8 halt:x:7:0:halt:/sbin:/sbin/halt
7 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
7 10 operator:x:11:0:operator:/root:/sbin/nologin
7 11 games:x:12:100:games:/usr/games:/sbin/nologin
7 12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
- 命令名称: awk -F: ‘{name=$1;uid=$3;if(name ~ /mafei/)print name,“and”,uid}’ passwd
作用:定义变量name=第一列,uid=第三列,如果name是马飞的话就打印name的变量和uid的变量
实例:
[root@zhangruilin ~]# awk -F: '{name=$1;uid=$3;if(name ~ /mafei/)print name,"and",uid}' passwd
mafei and 1104
- 命令名称:awk ‘{if($3 > 50)print $0}’ passwd
作用:如果第3列的数字大于50就打印一整行。
实例:
[root@zhangruilin ~]# awk '{if($3 > 50)print $0}' passwd
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
- 命令名称:awk -F: ‘NR==2{if($1 ~ /bin/) $3=$3+50;print $0}’ passwd
作用:如果第2行的第一列是bin的话,就将第3的数字加20,并打印整行
实例:
[root@zhangruilin ~]# awk -F: 'NR==2{if($1 ~ /bin/) $3=$3+50;print $0}' passwd
bin x 51 1 bin /bin /sbin/nologin
- 命令名称:awk -F: ‘NR==2{if($1 ~ /bin/)($1=“haha”);print $1}’ passwd
作用:如果第一列是bin就将第一列改成哈哈,并且打印第一列第一行
实例:
[root@zhangruilin ~]# awk -F: 'NR==2' passwd
bin:x:1:1:bin:/bin:/sbin/nologin
[root@zhangruilin ~]# awk -F: 'NR==2{if($1 ~ /bin/)($1="haha");print $1}' passwd
haha
- 命令名称:awk -F: ‘{total+=$3}END{print"The club student is:" total}’ passwd
作用:把第三列的所有数字赋值给total,然后打印第3列数字之和
实例:
[root@zhangruilin ~]# awk -F: '{total+=$3}END{print"The club student is:" total}' passwd
The club student is:14375
- 命令名称: awk ‘{total+=$6;print$0} END{print"The club student is:" total}’ chengji
作用:打印第6列的数字之和,并且列出所有行数
实例:
[root@zhangruilin ~]# awk '{total+=$6;print$0} END{print"The club student is:" total}' chengji
M.Tansley 05/99 48311 Green 8 40 44
J.lulu 06/99 48317 green 9 24 26
J.abcu 06/99 48317 green 9 24 26
A.haha 09/19 50000 Blue 20 50 55
B.kaka 10/19 50001 Black 40 60 70
The club student is:198
- 命令名称:
ll -h|awk '/^[^d]/{print $9"\t"$5} {total+=5} END{print "total kb:" total"k"}'
作用:将当前目录的内容开头是d以外的所有第9列之和打印出来
实例:
[root@zhangruilin ~]# ll -h|awk '/^[^d]/{print $9"\t"$5} {total+=5} END{print "total kb:" total"k"}'
a 0
chengji 185
passwd 1.4K
total kb:30k
- 命令名称: awk ‘$1==“A.haha”{print length($1),$1}’ chengji
作用:将第一列是A.haha匹配出来,然后并打印第一列的第一个数字和字符长度
实例:
[root@zhangruilin ~]# awk '$1=="A.haha"{print length($1),$1}' chengji
6 A.haha
- 命令名称:echo |awk ‘BEGIN{print split(“123#456#789”,haha,"#")}{print haha[2]}’
作用:使用split返回字符串数组元素个数,定义一个haha参数,以#为分隔符,打印第2
个参数
实例:
`[root@zhangruilin ~]# echo |awk 'BEGIN{print split("123#456#789",haha,"#")}{print haha[2]}'
3
456