【问题标题】:unescape backslash in jq outputjq输出中的反斜杠
【发布时间】:2019-11-04 15:28:16
【问题描述】:

https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/5317139/property/IsomericSMILES/JSON

对于上面的 JSON,下面的 jq 打印出5317139 CCC/C=C\\1/C2=C(C3C(O3)CC2)C(=O)O1

.PropertyTable.Properties
| .[]
| [.CID, .IsomericSMILES]
| @tsv

但是在第一个1 之前有两个\。是不是错了,三个应该只有一个\?如何获得正确数量的反斜杠?

【问题讨论】:

    标签: csv jq export-to-tsv


    【解决方案1】:

    输出中额外的反斜杠是生成 TSV 请求的结果,因为“\”在 jq 的 TSV 中扮演着特殊的角色(例如,“\t”表示制表符)。

    相比之下,考虑:

    jq -r '
      .PropertyTable.Properties
      | .[]
      | [.CID, .IsomericSMILES]
      | join("\t")' smiles.json
    5317139 CCC/C=C\1/C2=C(C3C(O3)CC2)C(=O)O1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-16
      • 2019-02-28
      • 2017-05-01
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多