gpt4 book ai didi

bash - 如何理解 'sort -uk 4n -uk 6n -uk 9n ' 、 'sort -uk 4 -uk 6 -uk 9' 和 'sort -uk 4,4 -uk 6,6 -uk 9,9' 之间的区别?

转载 作者:行者123 更新时间:2023-11-29 09:49:58 27 4
gpt4 key购买 nike

我有大量具有不同列号的数据。我只想输出 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 表示数字(与字典顺序相反)。

My question is how to under the three commands?

-k 的操作数是 KEYDEF。这是帮助说明的内容:

KEYDEF is F[.C][OPTS][,F[.C][OPTS]] for start and stop position, where F is a field number and C a character position in the field; both are origin 1, and the stop position defaults to the line's end. If neither -t nor -b is in effect, characters in a field are counted from the beginning of the preceding whitespace. OPTS is one or more single-letter ordering options [bdfgiMhnRrV], which override global ordering options for that key. If no key is given, use the entire line as the key

(我的重点)

排序选项 -n 是:

-n, --numeric-sort

     compare according to string numerical value

所以这告诉我们关于这三个 sort 的信息:

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 也是如此)。

关于bash - 如何理解 'sort -uk 4n -uk 6n -uk 9n ' 、 'sort -uk 4 -uk 6 -uk 9' 和 'sort -uk 4,4 -uk 6,6 -uk 9,9' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54519059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com