По всей видимости, нет способа проверить, на какой глубине tmux вы сейчас находитесь. Однако вы можете легко создать собственное решение. Просто сделайте переменную в .bashrc
/.bash_profile
/.profile
следующим образом:
if [[ ! -n "${LC_NESTING_DEPTH}" ]]; then
export LC_NESTING_DEPTH=1
else
export LC_NESTING_DEPTH=$(expr 1 + $LC_NESTING_DEPTH)
fi
Поскольку .bashrc загружается каждый раз, когда вы входите в tmux, переменная увеличивается на два. Вы даже можете передать переменную по ssh, добавив SendEnv LC_NESTING_DEPTH
в ~/. ssh/config
на вашей машине, и AcceptEnv LC_NESTING_DEPTH
в /etc/ssh/sshd_config
на машине, к которой вы подключаетесь по ssh (см. man ssh_config
и man sshd_config
для дополнительной информации об этом). Я не смог проверить ssh-ing из запущенной сессии ssh, но я предполагаю, что вы можете передавать переменную и оттуда.
Используя GNU sed
, мы можем сгенерировать желаемый результат, как показано ниже:
$ sed -Ee '
s/label="([^"]+)" selected[>]/\n\1\n/
s/.*\n(.*\n)/\1/
/\n/!d
P;D
' input.txt
Выходы:
snd 1
snd 2
snd 3
С помощью Perl
вы можете сделать это одним вкладышем:
$ perl -lne 'print for /label="([^"]+)" selected[>]/g' input.txt