私のファイルには次のテキストがあります
"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