Expressão regular que combina identificadores de sessão X?

3

Estou tentando criar um utilitário para extrair a primeira exibição em que um usuário está usando fisicamente grep e awk :

$ w | grep -P '^naftuli' | awk '{print $3;}'
:0
reprisal
tmux(2464).%0
tmux(2464).%1
tmux(2464).%2

Já vi identificadores de sessão X variantes, existe um formato padrão para o qual eu possa implementar uma expressão regular?

    
por Naftuli Kay 14.02.2017 / 03:23

1 resposta

3

Em um moderno sistema Unix, existem dois tipos de displays X: local ou (TCP) remoto. Um nome de exibição local é : seguido por um número e, opcionalmente, mas raramente seguido por . e um número de tela. Uma exibição remota é um nome de host ou endereço IP seguido por um nome de exibição local. Assim, na sintaxe ERE:

/([-.0-9A-Za-z]+|\[[0-9A-Fa-f:]\]):[0-9]+(\.[0-9]+)?/

Na prática, "é X se e somente se houver um : " deve funcionar.

    
por 15.02.2017 / 01:33