【发布时间】:2019-01-18 22:42:34
【问题描述】:
输入文件:salary.txt
1 rob hr 10000
2 charls it 20000
4 kk Fin 30000
5 km it 30000
6 kl it 30000
7 mark hr 10000
8 kc it 30000
9 dc fin 40000
10 mn hr 40000
3 abi it 20000
目标:找到所有薪水第二高的记录,其中第 4 列是薪水(空格分隔的记录)
我运行了两个类似的命令,但输出完全不同,我错过了什么?
命令 1:
sort -nr -k4,4 salary.txt | awk '!a[$4]{a[$4]=$4;t++}t==2'
输出:
8 kc it 30000
6 kl it 30000
5 km it 30000
4 kk Fin 30000
命令2:
cat salary.txt | sort -nr -k4,4 | awk '!a[$4]{a[$4]=$4;t++}t==2' salary.txt
输出:
2 charls it 20000
这两个命令的区别只是salary.txt的读取方式不同,为什么输出完全不同
【问题讨论】: