题干:
给定一个 nowcoder.txt文件,其中有3列信息,如下实例,编写一个shell脚本来检查文件第二列是否有重复,且有几个重复,并提取出重复的行的第二列信息:
实例:
20201001 python 99
20201002 go 80
20201002 c++ 88
20201003 php 77
20201001 go 88
20201005 shell 89
20201006 java 70
20201008 c 100
20201007 java 88
20201006 go 97
结果:
2 java
3 go
题解:
cut -d' ' -f2 nowcoder.txt | sort -r | uniq -c | awk -F' ' '{if($1 > 1){print $0}}'
思路
- 首先需要将第二列字符串给提取出来。cut可以进行列切割,-d指定分割列的字符,-f指定提取的列。
- 然后为了能使用uniq的特性,需要先使用sort进行一下排序,然后uniq去下重,-c参数表示只显示重复行,并列出重复次数。
- 最后使用awk命令遍历uniq后的结果,判断其重复次数是否大于1,如果大于就输出。
注:只分享下思路,具体的命令如有不懂麻烦自学下。