使用特定键而不是整行来排序-R。

时间:2015-05-28 15:29:42

标签: sorting unix

我有一个格式为的文件:

key1    1    <value>
key1    2    <value>
key1    3    <value>
key2    1    <value>
key2    2    <value>
key3    1    <value>
key3    2    <value>

我想通过密钥对这个文件进行洗牌,但是我希望使用相同密钥的块的顺序保持不变。所以可接受的顺序是:

key3    1    <value>
key3    2    <value>
key2    1    <value>
key2    2    <value>
key1    1    <value>
key1    2    <value>
key1    3    <value>

有没有办法用sort -R执行此操作?

1 个答案:

答案 0 :(得分:0)

如果不确切地知道文件中的数据或者您希望它如何排序,将很难给出您寻求的确切答案。 Sort有许多并不总是直观的“陷阱”,记得偶尔访问手册页。但是,以下示例可能有所帮助:

sort -R -k1,1 -k2,2n -b -s

1。按随机键排序,按数字排序第2列 - 覆盖此键的随机值,忽略前导空格,并禁用最后比较

 
sort -k1,1R -k2,2n
  1. 按列随机排序第1列,按数字排序第2列
  2. sort -k1,1R -k2,2rn
    
    1. 按列随机排序第1列,按数字排序第2列