Bash-是否可以在一行的一列中使用-uniq?

发布时间:2019-11-03 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了Bash-是否可以在一行的一列中使用-uniq?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1.gui  Qxx  16
    2.gu   Qxy  23
    3.guT  QWS  18
    4.gui  Qxr  21

我想根据第3列中的值对文件进行排序,所以我使用:

sort -rnk3 myfile

2.gu   Qxy  23
4.gui  Qxr  21
3.guT  QWS  18
1.gui  Qxx  16

现在我必须输出:(以3.gui开头的行是因为4.gui的行有更大的值)

2.gu   Qxy  23
4.gui  Qxr  21
1.guT  QWS  18

我不能使用-head,因为我有数百万行,我不在哪里切,我无法想办法使用-uniq,因为它将一条线视为整体,因为我无法告诉-uniq看第一列,它计算一条具有唯一性的输出线 – 这是正常的 – .我知道-uniq可以忽略许多字符但是你可以从例子中看到第一列可能有不同的字符数.

请指教..

解决方法

试试这个:
sort -rnk3 myfile | awk -F"[. ]" '!a[$2]++'

awk根据第二列删除重复项.这实际上是一个着名的awk语法来删除重复.维护一个数组,保持第二个字段的记录.每次打印记录之前,都会在数组中检查第二个字段.如果不存在,则打印,否则将其丢弃,因为它是重复的.这是使用的.第一次,当遇到记录时,这将使计数自其修复后保持为0.随后出现的事件会增加被否定的价值变成虚假的价值.

大佬总结

以上是大佬教程为你收集整理的Bash-是否可以在一行的一列中使用-uniq?全部内容,希望文章能够帮你解决Bash-是否可以在一行的一列中使用-uniq?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。