私がするとき
systemctl list-units --all --state=loaded
各セルの出力を列として取得します。
UNIT LOAD ACTIVE SUB DESCRIPTION
UNIT
入力と出力のみが必要です。
追加しようとしましたが、--property=UNIT
まだすべての列が印刷されます。試しましたが--output=json-pretty
成功しませんでした。
出力で特定の単位を一致させる必要がありますが、正規表現が失敗するため、文字列を簡単に比較できるように単位リストのみを取得すると便利です。
私が使用する正規表現は次のとおりです。fgrep "input_from_user".service
正規表現やコマンドに関する提案がありますか?
ベストアンサー1
JSON出力があれば、jq
PythonやJSONを理解するすべてのツールを使用できます。たとえば、フィルタリングを使用しますjq
。
systemctl list-units --output json |
jq -r --arg pattern input_from_user '.[].unit | select(test($pattern))'
これは文書化されていませんが、2020年5月に追加された内容です表形式の出力をJSONに変換する一般的な機能は、で動作する必要がgit grep output_table
あることを意味します。list-units
list-unit-files
list-machines
例:
% systemctl list-units --output json | jq -r --arg pattern network '.[].unit | select(test($pattern))'
network-online.target
network.target