awk -Fを使用して式で特定のフィールドを印刷するには?

awk -Fを使用して式で特定のフィールドを印刷するには?

ファイルから電子メールアドレスのみを印刷しようとしています。ファイル形式は次のとおりです。

{"12":"34","email":"[email protected]","firstname":"john","lastname":"smith","text":"0","sig":"js","..":"2017-08-23"}

awk -Fを使用してどのように抽出できますか?したがって、awk -F'"' '{print $8}' を使用できますが、列 8 が必ずしもメールアドレスではない可能性があります。

「@」正規表現にawk -Fを使用する方法はありますか?または、区切り文字のすべてのテキストを別の行に印刷し、grep '@'にパイプします。

ありがとう

ベストアンサー1

ジャックJSONデータの解析/操作に適したツールです。

jq '.email' jsonfile

出力:

"[email protected]"

おすすめ記事