Manter valores máximos repetidos na tabela

0

O tmux não possui um comando para mostrar janelas na sessão ativa. Então, estou tentando analisar as janelas do Tmux na sessão ativa. Eu tenho uma tabela única ordenada por data (campo 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 

Resultado:

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

O que estou tentando fazer ...

  1. Corresponder todos os campos com base em [linha 1, campo 1] OU [linha 1, campo 2] OU valores máximos no campo 1 (seja trabalho) e remover o restante.
  2. Relacione os nomes das janelas correspondentes em uma matriz numérica ordenada. %código%

Eu tentei olhar para o AWK, mas não consigo ver como acessar elementos de matrizes multidimensionais.

    
por Sourlemon11 12.09.2016 / 21:49

1 resposta

1

Para encontrar todos os valores da quarta coluna para o valor máximo da coluna 1:

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}
 '

saídas

windF windO windO windB
    
por 13.09.2016 / 15:58