给定一个test.txt文件,其中有3列信息,如下:
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
编写一个shell脚本来检查文件第二列是否有重复,且有几个重复,并提取出重复的行的第二列信息(先按次数排序,如果次数相同,按照单词字母顺序排序),输入如下:
2 java
3 go
#!/bin/bash
awk '{
for(i = 1 ; i <= NF ; i++){
array[$i] += 1
}
}
END{
for(s in array){
print array[s]" "s
}
}' test.txt | grep -E "^[2-9][[:space:]][[:alpha:]]+" -o | sort -n
后来发现awk可以简化
#!/bin/bash
awk '{print $2}' nowcoder.txt | sort | uniq -cd | sort -n