所以,这里有一个简单的命令:
xset -q | grep -e Num -e Caps
该命令的输出是:
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
我想知道的是,是否有可能只打印开启和关闭的部分,例如,
off
仅在之后打印Caps Lock
on
仅在之后打印Num Lock
例如,如果我需要获取 Caps Lock 的状态,我需要运行命令,使得输出仅为
off
或者on
答案1
使用grep
:
% xset -q | grep -Eo '(Caps Lock|Num Lock):[[:blank:]]+[^[:blank:]]+'
Caps Lock: off
Num Lock: on
(Caps Lock|Num Lock)
匹配Caps Lock
或Num Lock
上面的后面跟着
:
字符类,然后[[:blank:]]
匹配一个或多个空格或制表符它们
[^[:blank:]]+
将匹配下一个空格或制表符之前的一个或多个字符,即on
或off
。
答案2
您也可以使用 AWK。它允许打印列(默认情况下假定列以空格分隔)
xieerqi:$ xset -q | awk '/Caps/'
00: Caps Lock: off 01: Num Lock: off 02: Scroll Lock: off
xieerqi:$ xset -q | awk '/Caps Lock/ {print $4" "$8}'
off off