awk学习笔记

1、将第一列重复的元素去掉,只保留第一个

[root@CentOS awk_test]# cat sed_u.txt
haha;1
nihao;1
haha;3
hehe;4
heihei;5
heihei;6
1;HAHA
1;HEIHEI
[root@CentOS awk_test]# awk -F";" '!a[$1]++' sed_u.txt
haha;1
nihao;1
hehe;4
heihei;5
1;HAHA
[root@CentOS awk_test]#

2、AWK基础

[root@CentOS awk_test]# nl grade.txt
     1 M.Tans 5/99 48311 Green 8 40 44
     2 J.Lulu 06/99 48317 green 9 24 26
     3 P.Bunny 02/99 48 Yellow 12 35 28
     4 J.Troll 07/99 4842 Brown-3 12 26 26
     5 L.Tansl 05/99 4712 Brown-2 12 30 28
[root@CentOS awk_test]# awk 'BEGIN {print "Name Belt\n--"}{print $1"\t",$4}END{print "--end"}' grade.txt
Name Belt
--
M.Tans  Green
J.Lulu  green
P.Bunny  Yellow
J.Troll  Brown-3
L.Tansl  Brown-2
--end
[root@CentOS awk_test]#

[root@CentOS awk_test]# awk '$0~/Brown/ {print}' grade.txt
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
[root@CentOS awk_test]# awk '{if($4~/Brown/) print $0}' grade.txt
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
[root@CentOS awk_test]#

[root@CentOS awk_test]# awk '$0 !~ /Brown/' grade.txt
M.Tans 5/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26
P.Bunny 02/99 48 Yellow 12 35 28
[root@CentOS awk_test]#

[root@CentOS awk_test]# awk '$6 < $7 {print $0}' grade.txt
M.Tans 5/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26
[root@CentOS awk_test]#

[root@CentOS awk_test]#
[root@CentOS awk_test]# awk '/[Gg]reen/' grade.txt
M.Tans 5/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26
[root@CentOS awk_test]#

[root@CentOS awk_test]#
[root@CentOS awk_test]# awk '$0 ~/(Yellow|Brown)/' grade.txt
P.Bunny 02/99 48 Yellow 12 35 28
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
[root@CentOS awk_test]#

[root@CentOS awk_test]#
[root@CentOS awk_test]# awk '{print NF,NR,$0} END{print FILENAME}' grade.txt
7 1 M.Tans 5/99 48311 Green 8 40 44
7 2 J.Lulu 06/99 48317 green 9 24 26
7 3 P.Bunny 02/99 48 Yellow 12 35 28
7 4 J.Troll 07/99 4842 Brown-3 12 26 26
7 5 L.Tansl 05/99 4712 Brown-2 12 30 28
grade.txt
[root@CentOS awk_test]#

[root@CentOS awk_test]#

[root@CentOS awk_test]# echo $PWD
/lxg/awk_test
[root@CentOS awk_test]# echo $PWD | awk -F/
' {print $NF}'
awk_test
[root@CentOS awk_test]#

[root@CentOS awk_test]#
[root@CentOS awk_test]# awk '(tot+=$6); END{print "Club student total points :" tot}' grade.txt
M.Tans 5/99 48311 Green 8 40 44
J.Lulu 06/99 48317 green 9 24 26
P.Bunny 02/99 48 Yellow 12 35 28
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansl 05/99 4712 Brown-2 12 30 28
Club student total points :155
[root@CentOS awk_test]#

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值