awk命令

  • 命令名称: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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值