私は場所と側面に基づいてウィンドウを管理するためにLinuxでスクリプトを書いています。xwininfo -id ID -all
特に最大化および全画面表示の場合、ウィンドウ情報を表示するために使用すると、次の結果が返されます。
xwininfo: Window id: 0x2200001 "Newest 'bash' Questions - Unix & Linux Stack Exchange - Google Chrome"
[......]
Window manager hints:
Client accepts input or input focus: Yes
Initial state is Normal State
Displayed on desktop 0
Window type:
Normal
Window state:
Maximized Horz
Maximized Vert
Fullscreen
Focused
Process id: 63354 on host antonio-ThinkPad
Normal window size hints:
Program supplied minimum size: 121 by 127
[.......]
たとえば、個々の行を失うことなく、とWindow manager hints:
(Normal window size hints
排他)の間のすべてを抽出し、名前付き変数に保存したいと思います。$info
私はそれを試しましたが、awk
成功sed
しませんでした。私はプロのプログラマーではないので、事前に感謝します:)
提案された予想出力:
Client accepts input or input focus: Yes
Initial state is Normal State
Displayed on desktop 0
Window type:
Normal
Window state:
Maximized Horz
Maximized Vert
Fullscreen
Focused
いいえ、他の場所では表示されません。
ベストアンサー1
これにより、間にある2行を除いて2行が印刷されます。
awk '/Window manager hints:/{flag=1; next} /Normal window size hints/{flag=0} flag' file.txt
出力:
Displayed on desktop 0
Window type:
Normal
Window state:
Maximized Horz
Maximized Vert
[.......]
これには2行が含まれます。
awk '/Window manager hints:/,/Normal window size hints/' file.txt
出力:
Window manager hints:
Displayed on desktop 0
Window type:
Normal
Window state:
Maximized Horz
Maximized Vert
[.......]
上記のコマンドはファイルに対して実行されますが、次のコマンドを介してパイプすることもできます。
xwininfo -id ID -all | awk '/Window manager hints:/{flag=1; next} /Normal window size hints/{flag=0} flag'
または
xwininfo -id ID -all | '/Window manager hints:/,/Normal window size hints/'