Sorting 根据特定列对表数据进行排序、阈值和显示
我有一个表格格式的巨大数据文件要分析。我感兴趣的主要是两列,一列包含字母数字字母的名称(第1列),另一列包含百分比数字(第3列) 我的要求是基于列#3的值对数据进行反向排序,应用一些阈值(>10.0),并且仅显示符合此条件的所需行,并按排序顺序显示列#1和列#3 通常我会编写一个小的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.
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
这正是我需要的。谢谢!