.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
Pythonが許可されているようです。これが私が好む解決策です。
私はデータの極端なケースがわからないので、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
これにより、各数字がカンマなしで別々の行に出力されます。