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
私は何をしたいのですか...
- [Row 1、Field 1]、[Row 1、Field 2]、または Field 1(いずれかの有効なもの)の最大値に基づいてすべてのフィールドを一致させ、残りのフィールドを削除します。
- 一致するウィンドウ名を、順序付けられた数値配列としてリストします。
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