Фильтр называет из текстового файла

Вы можете использовать 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
0
06.10.2014, 23:47
3 ответа

Использование awk :

awk 'NF > 1 && $1 !~ /^\(|\)/ {print $1}' file

:

awk 'NF > 1 && $1 !~ /^\(|\)/ {print $1}' file

Линии печати только с одним полем ( NF> 1 ) и игнорируют линии, начинающиеся с ( или ) : ^ \ (| \) .

1
28.01.2020, 02:28

Похоже, вы просто хотите:

grep -o '^[A-Z]\+'

-o означает вывод только соответствующей части строки, а регекс совпадает с последовательностью одной или нескольких заглавных букв в начале строки.

Вы также можете сделать это с помощью sed, что для данного примера слишком сложно, но полезно (и проще, чем awk или perl), если вам нужно сделать более сложное совпадение или преобразование:

sed -n '/^[A-Z]\+/{s/^\([A-Z]\+\). */\1/;p}'

2
28.01.2020, 02:28

Если все входные файлы сформированы то же самое, для простого решения awk:

awk '/ ^ [az] / {Print $ 1}' filename

Использование Carrat ( ^ ) выбирает только записи, которые имеют символ в начале каждой строки. Тогда только печатайте первое поле, игнорирующее = .

0
28.01.2020, 02:28

Теги

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