加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 17:04:22 所属栏目:安全 来源:网络整理
导读:1.gui Qxx 16 2.gu Qxy 23 3.guT QWS 18 4.gui Qxr 21 我想根据第3列中的值对文件进行排序,所以我使用: sort -rnk3 myfile2.gu Qxy 234.gui Qxr 213.guT QWS 181.gui Qxx 16 现在我必须输出:(以3.gui开头的行是因为4.gui的行有更大的值) 2.gu Qxy 234.gui Q
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.随后出现的事件会增加被否定的价值变成虚假的价值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读