我知道 Unix排序的 -k 选项允许我们按特定列和以下所有内容进行排序。例如,给定输入文件:
2 3
2 2
1 2
2 1
1 1
Run Code Online (Sandbox Code Playgroud)
使用sort -n -k 1,我得到一个输出,按第一列排序,然后按第二列排序:
1 1
1 2
2 1
2 2
2 3
Run Code Online (Sandbox Code Playgroud)
但是,我想保留第二列的顺序,如下所示:
1 2
1 1
2 3
2 2
2 1
Run Code Online (Sandbox Code Playgroud)
这可以通过sort命令实现吗?
Cas*_*bel 80
试试这个:
sort -s -n -k 1,1
Run Code Online (Sandbox Code Playgroud)
在-s禁用“最后手段”的排序,这对排序,这不是一个特定的键的一部分一切。
在-k 1实际上并不意味着“本场和接下来的”在数字排序的情况下,你可以看到,如果你尝试排序的第二列。你只是看到连接线的其余部分被打破。但是,一般而言,您需要指定仅对字段 1-k 1,1进行排序。
tid*_*eck 10
要仅对第一列进行排序,您应该执行以下操作:
sort -n -s -k1,1
Run Code Online (Sandbox Code Playgroud)
sort 接受密钥规范 -k3(而不是 -k3,3),但它可能不会按照您的预期执行。没有终止字段号,排序键继续到行尾