是否可以使用 xdotool 中的正则表达式来识别窗口?

是否可以使用 xdotool 中的正则表达式来识别窗口?

操作系统:Ubuntu 18.04

假设我打开了以下五个窗口火狐标题中写道:

$ wmctrl -lx
0x03e00018  0 Navigator.Firefox     kububb Ubuntu Manpage: xdotool - command-line X11 automation tool - Mozilla Firefox
0x05a00003  0 leafpad.Leafpad       kububb mozilla1.txt
0x05e00003  0 mousepad.Mousepad     kububb mozilla2.txt - Mousepad
0x06000005  0 kate.kate                N/A mozilla3.txt  — Kate
0x06400093  0 gedit.Gedit           kububb mozilla4.txt (~/Desktop) - gedit

man xdotool在 WINDOW COMMANDS 部分中有此内容:

搜索 [选项] 模式
使用正则表达式模式搜索具有标题、名称或类别的窗口。

和这个:

--name
与窗口名称匹配。这与窗口标题栏中显示的字符串相同。

是否可以仅排除第一个条目,即 Firefox 条目?

如果我跑

xdotool search --name mozilla

列出了五个标识符。我怎样才能只列出这四个mozilla*.txt那些?

答案1

根据几个快速测试,它似乎支持 GNU 风格的扩展正则表达式。例如

$ wmctrl -ilx | grep brave
0x04000001  0 brave-browser.Brave-browser  t400s Newest Questions - Ask Ubuntu - Brave
0x040000fe  0 brave-browser.Brave-browser  t400s file2.txt - Brave
0x040000ff  0 brave-browser.Brave-browser  t400s fileA.txt - Brave

然后

$ xdotool search -name 'file.+\.txt'
67109118
67109119

或者

$ xdotool search -name 'file[0-9]\.txt'
67109118

相关内容