操作系统: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