我喜欢得到窗口pid(只有firefox)从wmctrl,我试过 wmctrl-lp|查询Firefox|awk-F"""{print$1}" 但是,产出不符合我的期望。帮助请。

beer@beer-laptop# wmctrl -lp
0x0160001b -1 6504   beer-laptop x-nautilus-desktop
0x016000bd  0 6504   beer-laptop conference - File Browser
0x03e00003  0 0              N/A XBMC Media Center
0x03800081  0 7282   beer-laptop Xbmc_ConferenceWindow.py (~/.qlive/xbmc-conference) - gedit
0x0352f117  0 6963   beer-laptop Ask a Question - Stack Overflow - Chromium
0x01400040 -1 6503   beer-laptop Top Expanded Edge Panel
0x01400003 -1 6503   beer-laptop Bottom Expanded Edge Panel
0x03202deb  0 6866   beer-laptop beer@beer-laptop: ~/.qlive/conference
0x012000c4  0 12134  beer-laptop Common threads: Awk by example, Part 1 - Mozilla Firefox
beer@beer-laptop# wmctrl -lp | grep Firefox | awk -F"  " "{print $1}"
0x012000c4  0 12134  beer-laptop Common threads: Awk by example, Part 1 - Mozilla Firefox
  • 在这种情况下我喜欢=0x012000c4
有帮助吗?

解决方案

wmctrl -lp | awk '/Firefox/ { print $1 }'

没有必要为查询.Awk将这样做。也默认场隔板是空白,因此有必要指定。此外,使用单一的报价在你awk脚本,以便壳不扩1美元。这就是为什么你的脚失败。1美元变成了什么和你awk行动成为"打印",其中打印的整个线。

其他提示

取代双引号 {print $1} 与单一的报价。这将防止外壳从扩大 $1.

awk'{print$1}'

你可以做的只是:

wmctrl -lp | grep firefox | awk '{print $1}'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top