我有一个 JSON 输出,我想稍微修改一下:
JSON={"type":"global", "elements":[
{"type":"car","model":"bmw", "elements":[
{"type":"door", "number":"3"},
{...},
{...}]
}]
}
我需要把所有东西放在一行中:
JSON={"type":"global","elements":[{"type":"car","model":"bmw","elements":[{"type":"door","number":"3"},{...},{...}]}]}
我尝试了这个:
JSON=`echo "${JSON}" | nawk 'sub(" *","",$0)'`
并且这个:
JSON=`echo "${JSON}" | sed 's/^[ \n\t]*//;s/[ \n\t]*$//'`
但是这两者都没有帮助到我,因为结果是:
JSON={"type":"global", "elements":[ <--- the remaining space between key-value groups were also supposed to disappear, but they don't
{"type":"car","model":"bmw", "elements":[
{"type":"door", "number":"3"},
{...},
{...}]
}]
}
我希望您能帮助我解决键值对之间的空格问题。
echo "${JSON}" | awk 'BEGIN {ORS=""; OFS=""} sub(" *","",$0)'
- 6axter82someprogram | awk -v ORS= -v OFS= '{$1=$1}1'
- user000001echo "..." | awk -v ORS= -v OFS= '{$1=$1}1'
。如果您没有向awk
提供文件,则它会从 stdin 读取,这是来自前一个管道的内容。 - fedorqui