Есть ли способ зациклить сеансы tmux, чтобы работать с ними один за другим?

Поскольку вы поняли, что вам «не нужны 2 файла» , используйте следующееawkрешение для обработки начального файла журнала за один проход:

awk '{
         u_name = substr($5, 1, index($5, "@"));
         if (!(u_name in users)) users[u_name] = ++c;
         sub(/^[^@]+/, "USER" users[u_name], $5)
     }1' file.log

Выход:

12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER2@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER3@hostname
-1
08.04.2020, 05:24
1 ответ

Вы можете написать сценарий оболочки, который зацикливается на сеансах, что-то вроде (не тестировалось):

#!/bin/bash
tmux ls -F '#{session_id} #{session_name}'|while read i; do
   s=$(echo $i|awk '{print $1}')
   name=$(echo $i|sed 's|^[^ ]* ||')
   printf "session $name? "
   read -n1 k </dev/tty
   echo
   case $k in
   d)
       tmux detach -s$s
       ;;
   D)
       tmux kill-session -t$s
       ;;
   c)
       tmux detach -Ps$s
       ;;
   esac
done
1
28.04.2021, 23:18

Теги

Похожие вопросы