如何理解 '之间的排序-UK 4N -UK 6N -UK 9N', '种类-UK 4 -UK 6 -UK 9' 和 '排序-UK 4,4- -UK 6,6 -UK 9,9' 的差?

问题描述 投票:2回答:1

我有不同的列数数据的一个巨大的安装。我要输出那些数据只用11柱,通过柱4,6对它们进行排序,并9.如果我使用

awk NF==11 17144_bondlength.dat |sort -uk 4 -uk 6 -uk 9

要么

awk NV==11 17144_bondlength.dat |sort -uk 4,4 -uk 6,6 -uk 9,9

我无法得到我想要的东西。如果我使用

awk NF==11 17144_bondlength.dat |sort -uk 4n -uk 6n -uk 9n

我能得到我想要的东西。在这里,17144_bondlength.dat是文件名。

我的问题是如何将三个命令下?任何进一步的评论将高度赞赏。

bash
1个回答
3
投票

由于它在sort帮助说,在键定义的n意味着它应用于该排序顺序的关键,而不是默认或其他指定的排序顺序。 n意味着数字(相对于字典)。

我的问题是如何将三个命令下?

-k操作数是KEYDEF。下面是帮助表示它:

KEYDEF是F [.C] [OPTS] [,F [.C] [OPTS]用于开始和停止位置,其中F是一个场号和C在该领域的字符位置;两者都是起源1,和停止位置默认为行的末尾。如果既没有-t也不-b生效时,在一个字段中的字符被从前面的空白的开始计数。 OPTS是一个或多个单字母排序选项[bdfgiMhnRrV],其覆盖为重点的全球订购选项。如果没有键,会使用整个线为关键

(我的重点)

排序选项-n是:

-n,--numeric排序

根据字符串数值比较

所以,它告诉我们这个关于这三个sorts:

sort -uk 4 -uk 6 -uk 9

排序着三把钥匙:

  • 一个关键的起始于第4栏,并继续到行的结束(因为端默认为行的末尾)
  • 一个关键的起始于第6栏,并继续到行尾的
  • 一个关键的开始第9栏,并继续到行尾的

三者都使用默认的排序。

sort -uk 4,4 -uk 6,6 -uk 9,9

排序着三把钥匙:

  • 一键启动的第4栏和第4栏结束
  • 一键启动第6栏和第6栏结束
  • 一键启动第9栏和第9栏结束

三者都使用默认的排序。

sort -uk 4n -uk 6n -uk 9n

与上述相同的第一个(与启动键4,图6和9,但通过管线的一端延续),但使用数字排序。

如果要排序的单个字符,数字,你可能想-uk 4,4n(与同为6,6和9,9)。

© www.soinside.com 2019 - 2024. All rights reserved.