Вот что означает ваше регулярное выражение, слева направо:
[
начало набора символов (или класса символов ). Соответствует одному символу из набора.
a-z,A-Z,0-9
внутри набора символов означает соответствие любому одному символу a-z
, A-Z
или 0-9
. Запятые на самом деле здесь необязательны, если только вы не пытаетесь буквально сопоставить запятую.
\.\-
.
— это специальный символ, который соответствует любому символу, но внутри набора символов он не имеет особого значения, и его не нужно экранировать. Здесь -
не нужно экранировать, если это первый или последний символ в наборе, он соответствует литералу -
, он приобретает особое значение только тогда, когда находится между двумя другими символами в наборе.
]
конец набора символов. Набор соответствует любому одному символу a-z
, или A-Z
, или 0-9
, или .
, или -
.
{2,}
является квантификатором. Это означает, что предыдущее регулярное выражение должно совпасть 2 или более раз.
Так что команду можно сократить до этой:
grep -E "[a-zA-Z0-9.-]{2,}" /etc/hostname
При использовании с флагом -P
grep интерпретирует шаблон как регулярное выражение Perl. Регулярные выражения Perl почти идентичны регулярным выражениям Python. На мой взгляд, это более мощный режим, чем -E
. В режиме Perl ваша команда становится:
grep -P "[a-zA-Z\d.-]{2,}" /etc/hostname
В файле ~/.tmux.conf
есть
setw -g window-status-format ' #I [#W] '
setw -g window-status-current-format ' #I [#W] '
строки, которые описывают формат, используемый для окон в строке состояния. #I
— это порядковый номер, а #W
— это имя окна.
В начале и в конце этих строк есть лишние пробелы, что дает нежелательные пробелы.
В качестве эксперимента вы можете изменить это внутри сеанса tmux, запустив
tmux setw -g window-status-format '#I [#W]'
Изменить :У @NicholasMarriott есть правильный ответ, а не этот.