我有不同的列数数据的一个巨大的安装。我要输出那些数据只用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是文件名。
我的问题是如何将三个命令下?任何进一步的评论将高度赞赏。
由于它在sort
帮助说,在键定义的n
意味着它应用于该排序顺序的关键,而不是默认或其他指定的排序顺序。 n
意味着数字(相对于字典)。
我的问题是如何将三个命令下?
到-k
操作数是KEYDEF。下面是帮助表示它:
KEYDEF是F [.C] [OPTS] [,F [.C] [OPTS]用于开始和停止位置,其中F是一个场号和C在该领域的字符位置;两者都是起源1,和停止位置默认为行的末尾。如果既没有-t也不-b生效时,在一个字段中的字符被从前面的空白的开始计数。 OPTS是一个或多个单字母排序选项[bdfgiMhnRrV],其覆盖为重点的全球订购选项。如果没有键,会使用整个线为关键
(我的重点)
排序选项-n
是:
-n,--numeric排序
根据字符串数值比较
所以,它告诉我们这个关于这三个sort
s:
sort -uk 4 -uk 6 -uk 9
排序着三把钥匙:
三者都使用默认的排序。
sort -uk 4,4 -uk 6,6 -uk 9,9
排序着三把钥匙:
三者都使用默认的排序。
sort -uk 4n -uk 6n -uk 9n
与上述相同的第一个(与启动键4,图6和9,但通过管线的一端延续),但使用数字排序。
如果要排序的单个字符,数字,你可能想-uk 4,4n
(与同为6,6和9,9)。