在表中保留重复的最大值

在表中保留重复的最大值

Tmux 没有在活动会话中显示窗口的命令。所以我试图在活动会话中解析 Tmux 的窗口。我有一个按日期排序的唯一表格(字段 1)。

#!/bin/sh
dump_tmux_info() {
    tmux list-panes -a -F "#{session_activity} #{session_name} #{window_index} #{window_name}"
}

# sort--> unique numbers descending (mru) --> unique fields3 (wind. order)
dump_tmux_info | sort -k1,1nr -u -k3 -u 

结果:

1473706992 SessionF 1 windF
1473706992 SessionI 2 windO
1473706992 SessionZ 3 windO
1473706992 SessionZ 4 windB
1473699283 SessionZ 1 windZ

我正在努力做什么...

  1. 根据 [行 1,字段 1] 或 [行 1,字段 2] 或字段 1 中的最大值(任一有效)匹配所有字段,并删除其余字段。
  2. 在有序数字数组中列出匹配的窗口名称。windF windO windO windB

我尝试查看 AWK,但不知道如何访问多维数组元素。

答案1

要查找第 1 列最大值的所有第 4 列值:

dump_tmux_info |
 sort -k1,1nr -u -k3 -u |
 awk '
    NR == 1 || $1 > max {max = $1; maxv = sep = ""} 
    $1 == max {maxv = maxv sep $NF; sep = " "} 
    END {print maxv}
 '

输出

windF windO windO windB

相关内容