在bash

时间:2018-02-21 20:24:46

标签: json string bash

我想使用带有JSON bash参数的“美化”cat。由于它与另一个功能一起使用,我需要让它“未经美化”(删除所有空格和换行符)。有一个简单的方法吗?

给你一个简单的例子:

工作

file.json

{ "name":"John", "age":30, "city":"New York"}

foo.sh

#!/bin/sh
myfunc cat file.json //..

不工作

file.json

{  
   "name":"John",
   "age":30,
   "city":"New York"
}

foo.sh

#!/bin/sh
myfunc cat file.json //..

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以将jq与-c参数

一起使用

jq -c '.' file.json

将打印

{"name":"John","age":30,"city":"New York"}

答案 1 :(得分:1)

可能jq可以帮到你。

<强> file.json

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

做:

cat file.json | jq -c 

将返回:

{"name":"John","age":30,"city":"New York"}

甚至更好,因为@Charles Duffy只会评论一个过程,而不是两个过程:

jq -c < file.json