gak*_*hov 6 awk shell-script sort uniq
我有一个下一个格式的文件
2011-12-01 user1 access1
2011-12-01 user1 access2
2011-12-01 user2 access2
2011-12-01 user4 access2
2011-12-02 user1 access1
2012-01-01 user3 access1
2012-01-01 user4 access2
Run Code Online (Sandbox Code Playgroud)
我想要一个输出,为每个用户显示最后日期,所以
2011-12-02 user1 access1
2011-12-01 user1 access2
2011-12-01 user2 access2
2012-01-01 user3 access1
2012-01-01 user4 access2
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
less myfile.txt | sort -k1r | uniq -f 1 | sort -b -k1
Run Code Online (Sandbox Code Playgroud)
但它似乎工作不正常。
谢谢你的帮助!
我想你想要
cat myfile.txt| sort -k1 -r | sort --unique --stable -k2,3
Run Code Online (Sandbox Code Playgroud)
(见我对cat
上面的评论)。第一种排序会将最新的日期放在顶部。第二种排序将按用户+访问进行排序,但是,通过给出--stable
,将保留具有相同用户+访问组合的行的先前顺序,即最新的仍然在顶部。给出--unique
,仅显示具有相同用户+访问权限组合的运行的第一行。(你可以用 替换它| uniq -f1
,我想,如果它碰巧是你的同类没有的 GNU 扩展。)
你快到了,只需要调整sort
选项:
sort -k2,2 -k1,1r myfile.txt | uniq -f1
Run Code Online (Sandbox Code Playgroud)
即:按用户和倒序日期排序,只留下用户+访问的第一次出现。
归档时间: |
|
查看次数: |
11290 次 |
最近记录: |