adbコマンドで複数のデバイスのみ取得するシェルスクリプトをメモする

どーも、ぐるたか@guru_takaです。

adbコマンドで複数のAndroid端末のデバイスを取得し、一括処理する機会がありました。その時のメモを残しておきます。

シェルスクリプト

まずはコードから公開します。

コマンドライン
devices=`adb devices | grep device$ | cut -f 1`
echo $devices

簡単な解説

adb devicesで、以下のようなデータが取得できます。

コマンドライン
List of devices attached
~~~~~~~    device
~~~~~~~    device
ほしい情報は~~~~~~~のみ!

なので、grep device$で検索し、行の末尾がdeviceの行を取得します。ちなみに、 | 次のコマンドに進むという意味です。
参考 grepでこういう時はどうする?Qiita

次に~~~~~~~の情報だけがほしいので、cut -f 1で最初の要素だけ取得すれば完了です!
参考 cutコマンドについてまとめました 【Linuxコマンド集】エンジニアの入り口

最後に

以上になります。デバイス情報を配列化して、for構文でデバイスごとに処理すると良いでしょう。
参考 BashでStringから配列に変換してfor文で回すくらげになりたい。

応用になりますが、xargsを使えば、並列処理できます。こちらもぜひお試しください!
参考 xargs を使ってカジュアルに並列処理たごもりすメモ

コメントを残す