{}[]()
모든 유형의 괄호 (적절하게 중첩, 열림, 닫힘)가 포함된 파일이 있습니다 . text:
대괄호 안의 내용을 일치시킨 후 문자열( )을 반환하고 싶습니다 . 파일의 내용은 다음과 같습니다.
....
{
"text": [
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
],
"unwanted": [
{
"stuff": ["nonesense"]
}
]
}
.... and so on
나는 돌아오고 싶다
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
파일 json
유형이 유사하며 구조가 유사합니다. 대괄호 안에 있는 내용을 구체적으로 반환하고 싶습니다 text:
.
답변1
제공하신 내용은 유효한 JSON이 아닙니다. 표현식을 래핑하고, 다른 오류를 수정하고, 반례를 추가하세요.
{
"text": [
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
],
"unwanted": [
{
"stuff": ["nonesense"]
}
]
}
JSON 파서(예: )를 사용할 수 있습니다 . 그러면 배열이 jq
선택됩니다 .text
jq -c '.text[]'
{"string1":["hello","world"],"string2":["foo","bar"]}
{"string1":["alpha","beta"],"string2":["cat","dog"]}
또는
jq '.text[]'
{
"string1": [
"hello",
"world"
],
"string2": [
"foo",
"bar"
]
}
{
"string1": [
"alpha",
"beta"
],
"string2": [
"cat",
"dog"
]
}
구문은 동일하지만 레이아웃이 약간 다릅니다.