.json 파일이 있고 SliceTiming 필드를 별도의 txt 파일로 추출해야 합니다. jq를 사용할 수 없습니다. 내가 할 수 있다면 내 명령은 다음과 같을 것이다.
jq .SliceTiming[] *.json
.json 파일입니다.
{
"EchoTime": 0.033,
"RepetitionTime": 0.75,
"EffectiveEchoSpacing": 0.0005,
"SliceTiming": [
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145,
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145,
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145,
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145,
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145,
0.51,
0,
0.365,
0.0725,
0.4375,
0.2175,
0.5825,
0.2925,
0.6575,
0.145 ],
"PhaseEncodingDirection": "j-"}
답변1
파이썬이 허용되는 것 같습니다. 이것이 내가 선호하는 솔루션입니다.
나는 데이터의 극단적인 경우를 모르기 때문에 sed, grep, awk를 다루는 것이 불편합니다.
배열을 표준 출력으로 인쇄하려면 사용하세요.
cat data.json | python -c "import sys, json; print json.load(sys.stdin)['SliceTiming']"
노트:이 예제에서는 python2.7을 사용하며 python3.x에서는 작동하지 않을 것 같습니다.
값을 출력하면 됩니다. 아니 []
아니 ,
:
slice_out.py
인라인 터미널을 할 수 있는 좋은 방법을 찾지 못해 만들었습니다 .
import sys, json
slice_data = json.load(sys.stdin)['SliceTiming']
for s in slice_data: print s
함께 달리다cat data.json | python slice_out.py
답변2
Perl 및 JSON 모듈 사용:
perl -MJSON -e 'print join("\n", @{decode_json(join("\n",<>))->{"SliceTiming"}})' <file.json
그러면 각 숫자가 쉼표 없이 별도의 줄에 출력됩니다.