没有得到最新的反对uniq与awk

时间:2015-06-18 11:07:45

标签: bash shell awk gawk nawk

65 20150427 000000000
8 20120930 000000000
18 20130626 000000000
6 20140505 000000000
1 20150603 000000000
18 20140712 000000000
65 20150502 000000000
10 20150113 000000000
92 20140707 000001000
20 20130530 000000000
11 20141231 000000000
15 20140516 000000000
1 20150523 000000000
18 20130620 120014000
7 20140505 000000000

以上是文件。第一个col是uniq id,后跟date&时间。每当我运行以下查询时,我都无法获得所需的结果......

awk '{a[$1]=$1}END{for(i in a) print i,a[i]}' file

它显示的是随机日期,但我想要针对每个uniq显示最新日期而不重复。 请提出一个前进的方法。

2 个答案:

答案 0 :(得分:0)

您可以改用此awk:

awk '!a[$1] || $2>a[$1]{a[$1]=$2} END{for (i in a) print i, a[i]}' file
1 20150603
6 20140505
7 20140505
8 20120930
10 20150113
11 20141231
15 20140516
18 20140712
20 20130530
65 20150502
92 20140707

答案 1 :(得分:0)

$ sort -rn datetime.txt | sort -n -u
1 20150603 000000000
6 20140505 000000000
7 20140505 000000000
8 20120930 000000000
10 20150113 000000000
11 20141231 000000000
15 20140516 000000000
18 20140712 000000000
20 20130530 000000000
65 20150502 000000000
92 20140707 000001000