![正则表达式匹配 X 会话标识符?](https://linux22.com/image/105369/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%8C%B9%E9%85%8D%20X%20%E4%BC%9A%E8%AF%9D%E6%A0%87%E8%AF%86%E7%AC%A6%EF%BC%9F.png)
我正在尝试创建一个实用程序来提取用户实际使用的第一个显示grep
:awk
$ w | grep -P '^naftuli' | awk '{print $3;}'
:0
reprisal
tmux(2464).%0
tmux(2464).%1
tmux(2464).%2
我已经看到变体 X 会话标识符,是否有可以实现正则表达式的标准格式?
答案1
在现代 Unix 系统上,有两种类型的 X 显示:本地或 (TCP) 远程。本地显示名称:
后跟一个数字,并且可选地但很少后跟.
屏幕编号。远程显示是主机名或 IP 地址,后跟本地显示名称。因此,在 ERE 语法中:
/([-.0-9A-Za-z]+|\[[0-9A-Fa-f:]\]):[0-9]+(\.[0-9]+)?/
实际上,“当且仅当有一个时,它才是 X :
”应该有效。