首页 > 解决方案 > 在jq中的单引号上拆分字符串

问题描述

如何对单引号进行拆分?

我期待某种逃脱,但到目前为止我还没有运气。有一种感觉,这甚至是不可能的。

echo "{\"username\": \"hu'lk\"}" | jq -r '.username|split("\'")|join("")'

我希望得到{"username": "hulk"},但我没有。它希望我关闭pipe dquote>

我知道可能有更好的方法来做到这一点,但条件替换嵌套在更大的 jq 过滤器中。

标签: bashjq

解决方案


您可以使用split("'")

[splits("[']")]

根据您使用的 shell,这些特殊字符可能需要转义,因此您可能会发现使用 jq 的 -f 命令行选项更方便。如果使用 bash,请注意:

echo $'"\'"'

产量

"'"

有关进一步的见解,请参阅例如如何在单引号字符串中转义单引号

gsub

也考虑gsub("'";"")


推荐阅读