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