Sed $ DISPLAY当前登录的用户

时间:2013-08-05 21:49:27

标签: regex linux sed xorg

我想找出当前登录用户使用的DISPLAY。为此,我想使用sed。首先,who的输出:

[orschiro@thinkpad ~]$ who
orschiro tty1         2013-08-05 23:15
orschiro pts/0        2013-08-05 23:17 (:0)
orschiro pts/1        2013-08-05 23:22 (:0)
orschiro pts/2        2013-08-05 23:22 (:0)

这就是我想为登录用户:0检索orschiro

我正在使用以下表达式,但它不会检索预期的结果。而输出是空的:

[orschiro@thinkpad ~]$ who | sed -e "/orschiro/! d;/pts/d;s/^.*[^0-9]\\(:[0-9.]\\+\\).*$/\\1/p;d" | head -n1
[orschiro@thinkpad ~]$ 

我的表情有什么问题?

3 个答案:

答案 0 :(得分:4)

命令/pts/d;删除包含字符串pts的所有行。 试试这个:

who | sed -e '/orschiro/! d; /pts/! d; s/^.*\(:[0-9.]\+\).*$/\1/p;d' | head -n1

答案 1 :(得分:2)

也许这个?

who | awk -F '[()]' '/orschiro/{print $(NF-1)}' | grep -v orschiro | head -n1

who | awk -F '[()]' '/orschiro/{print $(NF-1)}' | grep -v orschiro | uniq

答案 2 :(得分:1)

试试这个:
谁| awk'/ orschiro / {print $ 5}'| sed -e's / [()] // g'