对每一列进行排序,并在第一行中获取底部2个值的相应键ID

206先生

这是我的工作文件。(不知道列号和行号)

key_ID  col_1 col_2 col_3
AA      1     1     1
BB      56    2     7
CC      89    5     2
DD      7     77    7

我想对底部2个值的每一列进行排序,以便key_ID从第一列中找到它们的对应值

所需的输出像

col_1  col_2 col_3
AA     AA     AA
DD     BB     CC         
拉韦西纳

使用pure bash

#!/bin/bash

DATA=/path/to/input_data
COL_NUMS=$(head -1 $DATA | wc -w)

FILES=''
for i in $(seq 2 $COL_NUMS)
do
  FILE=$(mktemp)     
  echo col_$((i-1)) > $FILE
  cut -f1,$i -d' ' <(tail -n +2 $DATA | tr -s ' ') | 
        sort -k2 -g | head -2 | cut -f1 -d' ' >> $FILE

  FILES="$FILES $FILE"
done

paste $FILES
rm $FILES

输出:

col_1   col_2   col_3
AA      AA      AA
DD      BB      CC

它所做的就是逐一并分别查看列及其标签,例如labels,col1,然后labels,col2依此类推。

for i in $(seq 2 $COL_NUMS)
do
  ...
  cut -f1,$i -d' ' <(tail -n +2 $DATA | tr -s ' ')

然后,它排序并查找每个组中具有最低两个值的标签,并将它们放入临时文件中。

FILE=$(mktemp)
...
sort -k2 -g | head -2 | cut -f1 -d' ' >> $FILE

在执行此操作时,我们将创建所有这些文件的列表。

FILES="$FILES $FILE"

因此,现在我们有一堆包含所需列表的临时文件,我们应该使用paste命令将它们放在一起并删除这些临时文件:

paste $FILES
rm $FILES

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在文件中每4行对第一列进行排序,并在第二列中使用键

取得每一行值并在Pandas中建立一列

如何获取数据框中每一行的每一列的值和类型?

Excel公式在第一列中计算数字并在同一行的相应列中输出?

如何对表中的每一列进行排序并在SQL中显示每列中的最高值?

在R中按降序对一列进行排序(第一行除外)

从选定的行中为每一列获取第一个非空值

从存储过程返回的表中获取第一列,第一行的值

遍历数据帧中的每一行,并在相应的x和y列中绘制值(散点图)

从满足条件的NumPy矩阵的每一行中获取N个第一值

获取表中每一行的第一个单元格值

Python,根据每一行的第一列中的值替换最后N列中的所有整数

如何使数据框中的每一行的每一列都有一个值?

Visual Basic遍历每一行并将每一行的第一列的值写入不同的标签

如何使用另一列获取值并在MySQL或SQL中获得每一行之间的差异?

根据一列中的值获取数据帧组的第一行和最后一行

迭代列并将该列的每一行值与 Pandas 中另一列的值进行比较

Pandas Dataframe - 对列的每一行中的值列表进行排序

如何根据谷歌表格第一行中的产品ID从第一列中获取前n个类别名称?

如何将每一行的第一列数据添加到相应行中由某些特定字符串或字符标记的每一列的开头?

在同一行的另一列中为您命名的值查找相应的值

根据第一列对2个文件进行排序和合并,没有重复的行

按第n列排序数据,获取第一行的行名,对每一列执行此操作

FixedColumns 数据表未对齐并在一列中复制每一行

awk / sed比较第一列并在一行中添加后续行

访问每一行并检查数据框中的每一列值

针对Spark数据框中的每一行,按地图类型列中的键进行排序

根据每一行中的值获取列标题

更改每一行中第一列的innerhtml