Hal*_*ast 0 string json jq convertto-json
有一个字符串列表(每行一个),比如
str1
str2
...
Run Code Online (Sandbox Code Playgroud)
如何将这些转换为 JSON 列表["str1", "str2"]?
假设输入是在stdin上给出的,下面的命令解决了这个问题:
jq -Rn '[inputs]'
Run Code Online (Sandbox Code Playgroud)
该标志-R将输入读取为“原始”(即未加引号的字符串)并将-nstdin 移交给inputs(slurping with-s不起作用,因为当与 结合时-R,它将整个输入读取为单个字符串)。添加-c以在一行上打印 JSON,就像问题中一样。
添加一个小过滤器可以跳过任何空行(如尾随换行符):
jq -Rn '[inputs|select(length>0)]'
Run Code Online (Sandbox Code Playgroud)
如果字符串由其他字符分隔,例如,,则字符串可能会被分割为
jq -R 'split(",")'
Run Code Online (Sandbox Code Playgroud)
这也可用于拆分\n以解决上述情况,但我(未经证实的)假设是上述解决方案对于使用其他线路终结器的系统更具便携性。
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |