【发布时间】:2019-10-31 05:43:40
【问题描述】:
我想解析this JSON file。
为了得到这样的结果,第二列是 Canonical SMILES,第三列是 Isomeric SMILES。
5317139<TAB><TAB>CCCC=C1C2=C(C3C(O3)CC2)C(=O)O1<TAB>CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1
谁能告诉我如何在 jq 中以最好的方式做到这一点?
【问题讨论】:
我想解析this JSON file。
为了得到这样的结果,第二列是 Canonical SMILES,第三列是 Isomeric SMILES。
5317139<TAB><TAB>CCCC=C1C2=C(C3C(O3)CC2)C(=O)O1<TAB>CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1
谁能告诉我如何在 jq 中以最好的方式做到这一点?
【问题讨论】:
假设<TAB><TAB> 的出现是错字,以下 jq 脚本(使用 -r 命令行选项运行)满足所述要求:
def getString($TOCHeading):
.. | objects | select( .TOCHeading == $TOCHeading)
| .Information[0].Value.StringWithMarkup[0].String;
.Record
| [.RecordNumber,
getString("Canonical SMILES"),
getString("Isomeric SMILES")]
| @tsv
这个脚本产生:
5317139 CCCC=C1C2=C(C3C(O3)CC2)C(=O)O1 CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1
【讨论】: