Нелегко на уровне tmux
или терминала OSX (сценарии tmux
не кажутся достаточно мощными), но если вы случайно при использовании bash
у него есть функция, называемая команда-подсказка, в которую вы можете помещать сценарии.
Вот несколько указателей (с примерами):
Если вы используете zsh
, похоже, это также предлагает возможности:
Ключ po int во всем этом заключается в том, что некоторые оболочки предоставляют возможность вызывать сценарии общего назначения каждый раз, когда отображается приглашение.
Awk
решение:
awk '/robot/{
if (r){ printf "%s : %d\n", r, c; c=0; delete a }
r = $1 OFS $2;
}
/drive/ && !a[$3]++{ c++ }
END{ printf "%s : %d\n", r, c }' file
r = $1 OFS $2
-"робот" имя delete a
-удалить все элементы массива a
. (Следующий оператор предоставляет портативный, но неочевидный способ очистки массива:split("", array)
)c++
-подсчет уникальных "дисков" номеров для определенного "робота"Выход:
robot 0 : 11
robot 1 : 4
awk '$1=="robot" && $2 == "1" {x=NR+5} (NR<=x) {print}' test | awk '{print $3}' | sed '/-/d' |wc -l | awk '{print "robot1:" " " $0}'
робот1 :4
awk 'NR >2 {print $0}' test |sed -n '/robot/,/robot/{x;p;d;};x'| sed '/^$/d' | sed '/robot/d' | awk '{print $3}' | sort | uniq | wc -l | awk '{print "robot0:" " " $1}'
робот0 :11