gpt4 book ai didi

linux - 有条件地删除 shell 脚本中的新行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:12 24 4
gpt4 key购买 nike

我有以下数据:

{
foo,
bar,
qux,
zuu,
sdf,
sdfasdf
}
{
abc,
efg,
hij,
klm,
nop,
qrs
}

我想做的是将它们转换成一行并以逗号分隔的 block :

 foo,bar,qux,zuu,sdf,sdfasdf
abc,efg,hij,klm,nop,qrs

最好的 unix shell 编程方法是什么?

我正在尝试像下面这样处理 JSON 数据:

  {
"Items": [
{
"A": {
"S": "http://"
},
"B": {
"N": "1"
},
"C": {
"N": "0"
},
"D": {
"N": "0"
},
"E": {
"S": "2110221641826713463977"
},
"F": {
"N": "2.5"
},
"G": {
"S": " "
},
"H": {
"B": "IA"
},
"I": {
"N": "0"
},
"J": {
"N": "0"
}
},
{
"A": {
"S": "http://"
},
"B": {
"N": "0"
},
"C": {
"N": "1"
},
"D": {
"N": "2"
},
"E": {
"S": "67"
},
"F": {
"N": "0"
},
"G": {
"S": " "
},
"H": {
"B": "Agh"
},
"I": {
"N": "9"
},
"J": {
"N": "1"
}
},
]
}

我正在使用 JQ 解析如下:

  jq -r '.Items[]'  | jq -r '{(.A.S): [.A.S, .B.B, .C.N, .D.S, .E.N, .F.N, .G.N, .H.N, .I.S]}'

这会解析 JSON 但会像上面那样留下数据。

最佳答案

使用 gnu awk 可以在一条命令中完成:

gawk -v RS='\n?[{}]\n?' 'NF{gsub(/ *\n */, ""); print}' file
foo,bar,qux,zuu,sdf,sdfasdf
abc,efg,hij,klm,nop,qrs

关于linux - 有条件地删除 shell 脚本中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com