Вы можете использовать TMUX, чтобы иметь несколько экранов / Windows. Ниже приведен фрагмент сценария, который я использую, чтобы показать вам пример этого:
#Declares winod WinSplit
tmux new-window -a -n WinSplit
tmux new-session -d -s WinSplit -n SSH0 -d
tmux selectp -t WinSplit
#Binds Keys, activates window activity, color coding of panes
tmux bind-key -n M-Left previous-window -t WinSplit
tmux bind-key -n M-Right next-window -t WinSplit
tmux set-window-option -g monitor-activity on
tmux set -g visual-activity on
tmux set-window-option -g window-status-current-bg blue
tmux set-window-option -g window-status-fg red
tmux set -g pane-border-fg yellow
tmux set -g pane-active-border-bg red
tmux set -g message-fg yellow
tmux set -g message-bg red
tmux set -g message-attr bright
tmux set -g status-left "#[fg=red]#S"
#names the panes/windows that are split
tmux new-window -n SSH1 -t WinSplit
tmux new-window -n SSH2 -t WinSplit
tmux new-window -n SFTP -t WinSplit
tmux new-window -n portalDB -t WinSplit
tmux new-window -n JoinCode -t WinSplit
tmux new-window -n Profile -t WinSplit
tmux new-window -n Username -t WinSplit
tmux new-window -n bash0 -t WinSplit
tmux new-window -n bash1 -t WinSplit
tmux new-window -n bash2 -t WinSplit
#Calls script when windows are made and attached
tmux send-keys -t WinSplit:0 './sshScript.sh' C-m
tmux send-keys -t WinSplit:1 './sshScript.sh' C-m
tmux send-keys -t WinSplit:2 './sshScript.sh' C-m
tmux send-keys -t WinSplit:3 './ftpConnect.sh' C-m
tmux send-keys -t WinSplit:4 'opendb' C-m
tmux send-keys -t WinSplit:5 './promptforJoinCode.sh' C-m
tmux send-keys -t WinSplit:6 './promptforProfile.sh' C-m
tmux send-key -t WinSplit:7 './promptforUsername.sh' C-m
tmux attach -t WinSplit
Использование awk
:
awk 'NF > 1 && $1 !~ /^\(|\)/ {print $1}' file
:
awk 'NF > 1 && $1 !~ /^\(|\)/ {print $1}' file
Линии печати только с одним полем ( NF> 1
) и игнорируют линии, начинающиеся с (
или )
: ^ \ (| \)
.
Похоже, вы просто хотите:
grep -o '^[A-Z]\+'
-o
означает вывод только соответствующей части строки, а регекс совпадает с последовательностью одной или нескольких заглавных букв в начале строки.
Вы также можете сделать это с помощью sed
, что для данного примера слишком сложно, но полезно (и проще, чем awk
или perl
), если вам нужно сделать более сложное совпадение или преобразование:
sed -n '/^[A-Z]\+/{s/^\([A-Z]\+\). */\1/;p}'
Если все входные файлы сформированы то же самое, для простого решения awk:
awk '/ ^ [az] / {Print $ 1}' filename
Использование Carrat ( ^
) выбирает только записи, которые имеют символ в начале каждой строки. Тогда только печатайте первое поле, игнорирующее =
.