文字列をフィルタリングした後の任意のユーザー名

文字列をフィルタリングした後の任意のユーザー名

この情報を含むAPIステータスの完全なリストがあります。別のファイルまたは変数に送信できるように、ユーザー名の名前をgrepする必要があります。

たとえば、

[{"id":"1onyc4b1otgmtrmw37h83rjs9w","create_at":1542718790947,"update_at":1542728017634,"delete_at":0,"username":"ivan.ivanov","auth_data":"".

「username」の後に文字列を取得する必要があります。結局、次のような文字列しかありません。イワン・イヴァノフそれとも名前が何であれ。

ベストアンサー1

これが正しいjson文字列である場合は、次のように解析できますjq

your_api_call | jq -r '.[]["username"]'

または

jq -r '.[]["username"]' file

しかし、提供した文字列は正しいjsonではありません。]}最後に右括弧()が欠落してa.に置き換えられました。

jqほとんどのパッケージマネージャで利用可能です。たとえば、次のようにインストールします。

sudo apt install jq

どうすれば必要使用grepおよび所有pgrep/grep -P使用可能:

grep -Po '"username":"\K[^"]*'

おすすめ記事