所以我的输入看起来像
{"selling":"0","quantity":"2","price":"80000","date":"1401384212","rs_name":"overhault","contact":"PM","notes":""}
{"selling":"0","quantity":"100","price":"80000","date":"1401383271","rs_name":"sammvarnish","contact":"PM","notes":"Seers Bank W321 :)"}
{"selling":"0","quantity":"100","price":"70000","date":"1401383168","rs_name":"pwnoramaa","contact":"PM","notes":""}
我想要的输出必须看起来像
0,2,80000,1401384212,overhault,PM,"" 0,100,80000,1401383271,sammvarnish,PM,"Seers Bank W321 :)" 0,100,70000,1401383168,pwnoramaa,PM,""
在bash中执行此操作的最佳方法是什么?
编辑:改变了我的需求。 我想要的新输出是 {"卖":" 0""量":" 2""价格":" 80000""日期":" 1401384212"" rs_name":" overhault""接触&#34 ;: " PM""笔记":" testnote"} 作为输入,rs name: \t overhault
quantity: \t 2
price: \t 80000
date: \t 29-05 19:23
contact: \t PM
notes: \t testnote
其中\ t是制表符(如echo" \ t")。 如你所见,这个有点复杂。 例如,它更改顺序,并要求将UNIX时间戳转换为备用格式。
只要您清楚地解释如何从bash脚本中使用它,我就会使用您可以提供给我的任何工具。输入将包含三行,由换行符分隔,并且必须在每个结果之间用空行打印输出。
答案 0 :(得分:4)
不要使用正则表达式/ bash执行此操作,此类任务有JSON解析器。简单的Python示例:
import json
data = json.loads('{"selling":"0","quantity":"2"}')
data = ','.join(data.values())
print(data)
我强烈建议您使用这样一个简单的脚本,然后调用它,然后调用。
编辑:这是一个保留订单的版本:
import json
data = json.loads('{"selling":"0","quantity":"2", "price":"80000"}')
orderedkeys = ['selling', 'quantity', 'price']
values = [data[key] for key in orderedkeys]
values = ','.join(values)
print(values)
输出:
0,2,80000