ファイルのフィールドの後にデータを抽出する方法

ファイルのフィールドの後にデータを抽出する方法

私のファイルには次のテキストがあります

 "rules": [
        "/Common/Tetration_TCP_L4_ipfix",
        "/Common/_sys_https_redirect"
    ],
    "rulesReference": [
        {
            "link": "https://localhost/mgmt/tm/ltm/rule/~Common~Tetration_TCP_L4_ipfix?ver=12.0.0"
        }

"rules": [] 現在内部にあるすべてを抽出したいと思います。

/Common/Tetration_TCP_L4_ipfix
/Common/_sys_https_redirect

出力は次のとおりです。

Tetration_TCP_L4_ipfix
_sys_https_redirect

しかし、繰り返しますが、これは何でもすることができます。

ベストアンサー1

入力ファイルに不完全なJSONが含まれていて内部フラグメントのみが含まれている場合(構造的に有効であっても)、欠落している「外部」部分を回復して、完全で有効なJSON構造を取得できます。

sed+jq解決策:

jq -r '.rules[] | sub("/Common/"; "")' <(sed '1 s/^/{/; $ s/$/]}/' file)

出力:

Tetration_TCP_L4_ipfix
_sys_https_redirect

もちろん、実際に有効なJSONがある場合は、処理をスキップして次をsed使用してください。

jq -r '.rules[] | sub("/Common/"; "")' file

おすすめ記事