Linux 排序 : how to sort numerically but leave empty cells to the end

标签 linux sorting gnu rank

我有这些数据要排序。第一列是项目 ID。第二列是数值。有些项目没有数值。

03875334    -4.27
03860156    -7.27
03830332    
19594535    7.87
01542392    -5.74
01481815    11.45
04213946    -10.06
03812865    -8.67
03831625    
01552174    -9.28
13540266    -8.27
03927870    -7.25
00968327    -8.09

我想使用 Linux sort 命令按数值的升序对项目进行排序,但将那些空项目留在最后。所以,这是我想要获得的预期输出:

04213946    -10.06
01552174    -9.28
03812865    -8.67
13540266    -8.27
00968327    -8.09
03860156    -7.27
03927870    -7.25
01542392    -5.74
03875334    -4.27
19594535    7.87
01481815    11.45
03830332    
03831625    

我尝试了“sort -k2n”和“sort -k2g”,但都没有产生我想要的输出。有什么想法吗?

最佳答案

这里是一个简单的Schwartzian transform,假设所有的实际值都小于123456789。

awk '{ printf "%s\t%s", ($2 || 123456789), $0 }' file |
sort -n | cut -f2- >output

关于Linux 排序 : how to sort numerically but leave empty cells to the end,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018266/

相关文章:

stack - 使用 setrlimit 在 Linux 中增加堆栈大小

c - 使用 exec 启动应用程序/附件

linux - ELF文件格式中的section和segment有什么区别

linux - 将变量传递给 grep 命令

python - 搜索并打印具有相同 MD5 的文件

sorting - Dart自定义排序列表

javascript - 使用 Javascript 根据总和对一组数字进行排序

gcc - 下载 gcov gnu 实用程序源代码?

java - 使用 NetBeans 编译 java 类,但在 Linux 上出现控制台错误

c++ - 使用 Ptrace 检索系统调用,在第一个调用后停止