たとえば、私はxdotool
デスクトップからウィンドウリストを取得し、1行に1つずつ数値リストを出力しました。
例コマンドは、xdotool search --name "a_program"
タイトルにその文字列を含むすべてのウィンドウを一覧表示します。a_program
サンプル出力は次のとおりです。
50853718
50853807
50859414
数字からウィンドウのタイトルを取得するコマンドの例はですxdotool getwindowname 50854718
。
xargs
各行の出力を変換するコマンドをどのように設定しますかxdotool getwindowname outputnumber
?
質問は主にについてですが、xargs
どんな意見でも歓迎します。xdotool
答え1
> echo "50853718
50853807
50859414" | xargs -n 1 echo xdotool getwindowname
xdotool getwindowname 50853718
xdotool getwindowname 50853807
xdotool getwindowname 50859414
それが必要な場合は削除してくださいecho
。
xdotool search --name "a_program" | xargs -n 1 echo xdotool getwindowname
答え2
xargs
完璧にするために:Bashまたは互換性のあるシェルを使用している場合でも、これを行う必要はありません。 (他のどのシェルがこの構文を受け入れるのかはよくわかりませんが、いくつかの一般的なシェルが許可していると思います)xargs
。 。
for winid in $(xdotool search --name "a_program"); do
xdotool windowname $winid;
done
間隔は重要ではないので、すべての内容を1行に入れることができます。ただし、これは返される個々のウィンドウIDにxdotool search
スペースが含まれていないという事実に依存します。