Sorting 根据特定列对表数据进行排序、阈值和显示

Sorting 根据特定列对表数据进行排序、阈值和显示,sorting,sed,awk,grep,Sorting,Sed,Awk,Grep,我有一个表格格式的巨大数据文件要分析。我感兴趣的主要是两列,一列包含字母数字字母的名称(第1列),另一列包含百分比数字(第3列) 我的要求是基于列#3的值对数据进行反向排序,应用一些阈值(>10.0),并且仅显示符合此条件的所需行,并按排序顺序显示列#1和列#3 通常我会编写一个小的perl脚本来实现这样的需求。但在这里,我正在寻找一系列linux命令(一行程序)来快速高效地解决这个问题 样本输入 abc12 24.5 90.0 5 xyz23 454.23 23.

我有一个表格格式的巨大数据文件要分析。我感兴趣的主要是两列,一列包含字母数字字母的名称(第1列),另一列包含百分比数字(第3列)

我的要求是基于列#3的值对数据进行反向排序,应用一些阈值(>10.0),并且仅显示符合此条件的所需行,并按排序顺序显示列#1和列#3

通常我会编写一个小的
perl
脚本来实现这样的需求。但在这里,我正在寻找一系列linux命令(一行程序)来快速高效地解决这个问题

样本输入

abc12   24.5     90.0    5  
xyz23   454.23   23.5    2
aa34cd  1.345    12.34   6
uvxy    4.25     54.7    1
pqr3t   235.3    6.05    4
abcd    1.234    4.56    3
abc12   90.0
uvxy    54.7
xyz23   23.5
aa34cd  12.34
所需输出

abc12   24.5     90.0    5  
xyz23   454.23   23.5    2
aa34cd  1.345    12.34   6
uvxy    4.25     54.7    1
pqr3t   235.3    6.05    4
abcd    1.234    4.56    3
abc12   90.0
uvxy    54.7
xyz23   23.5
aa34cd  12.34
如果你能帮我解决这个问题,那就太好了

我试过什么?

我可以使用以下命令对第3列进行反向排序。不知道下一步是什么

awk '{print $3}' test.txt | sort -rn

如果第三个字段大于10,则仅打印第一个和第三个字段,然后对第二个字段执行数字逆序排序:

$ awk '$3>10{print $1,$3}' file | sort -nrk 2
abc12    90.0
uvxy     54.7
xyz23    23.5
aa34cd   12.34

这正是我需要的。谢谢!