xrandrの出力を「怠惰な」方法で読み取る方法は?

xrandrの出力を「怠惰な」方法で読み取る方法は?

xrandr --verbose現在の明るさを取得するために使用されるモニターの明るさを調整するbashスクリプトがあります。ここに示すようにうまく動作しますが、xrandr私のコンピュータで使用するのは少し遅いです。

[PROMPT REDACTED]$ time xrandr --verbose
# xrandr output omitted for brevity
real    0m0.976s
user    0m0.003s
sys     0m0.002s

ほぼ1秒かかることに加えて、不要な多くの情報が出力されます。実際に必要な出力行は次のとおりですBrightness: X。現在、この行を使用して次の値を取得します。

BRIGHTNESS=`xrandr --verbose | grep -i brightness | cut -f2 -d ' ' | head -n1`

注:head最後の呼び出しでは、モニターは2つなので、最終的に2つの値が得られますが、同じ明るさに保たれるため、1つだけが必要です。

で1行しか必要ないので、xrandr --verbose次のように「ゆっくり」評価する方法があるかどうか疑問に思います。

  • xrandrこの行に達すると出力を停止します。
  • xrandr行の読み取りが終了すると、残りの出力は無視されます。
  • 他にはありませんか?

私はbashがこの状況に最も適した言語ではないかもしれないことを知っているので、他の言語のソリューションにも開いています。

ベストアンサー1

awk以下を使用して、一部のパイプ(プロセス)を削除し、最初の明るさインスタンスが表示されるまでファイルを読み取ることができます。

xrandr --verbose | awk '/Brightness/ { print $2; exit }'

おすすめ記事