sed は文字の前後のすべてを削除します。

sed は文字の前後のすべてを削除します。

私はこれをAndroid上で実行しています。

注文する:

dumpsys activity activities | grep mFocusedApp

出力:

mFocusedApp=ActivityRecord{273535b u0 com.any.some/.app.AnyActivity t5595}

予想される:

com.any.some

sedまたは他の直接コマンドを介してパッケージ名が必要です。


編集する(コメントからコピーしました。回答;結果文字列がコマンドに引数として渡されるべきであることを明確にするために追加されました。 )

現在焦点を当てたアプリケーションを再起動する必要があるため、パッケージ名を取得したら、次のように渡して停止する必要がam stopありますam start

am stop com.any.some && am start com.any.some

ベストアンサー1

GNUの使用grep:

focusApp=$(
  dumpsys activity activities |
    grep -Po '^mFocusedApp=\S+\{\S+ \S+ \K[^\s/]+'
)

基準:

focusApp=$(
  dumpsys activity activities |
    sed -n 's/^mFocusedApp=[^ ]\{1,\}{[^ ]\{1,\} [^ ]\{1,\} \([^\s/]+\).*/\1/p'
)

おすすめ記事