我正在使用jq从JSON文件中读取一些数据。
after=`cat somefile.json | jq '.after[]'`
返回类似这样的内容:
"some value" "another value" "something else"
基本上是引用字符串的列表。我现在需要将这些字符串转换为一个格式为
的字符串"some value; another value; something else;"
我已经尝试了很多for循环的组合来尝试使其工作,但没有什么可行的。
任何人都知道如何做到这一点?干杯!
答案 0 :(得分:2)
使用sed
:
sed -e 's/" /; /g; s/ "/ /g; s/"$/;"/' <<< '"some value" "another value" "something else"'
<强>输出:强>
"some value; another value; something else;"
使用sed s
命令替换欲望值
答案 1 :(得分:1)
谢谢大家!我实际上决定深入研究jq文档,看看我是否可以简单地利用它来做我想做的事。
after=`cat somefile.json | jq -c -r '.after[] + "; "'` | tr -d '\n'
这最终运作良好。谢谢你的sed版本!总是很高兴看到另一个有效的解决方案。
答案 2 :(得分:0)
假设// In the main thread:
NSMenu *menu = [[NSMenu alloc] initWithTitle:@"Menu"];
NSMenuItem* placeholder = [NSMenuItem alloc] initWithTitle:@"Please wait" action:NULL keyEquivalent:@""];
[menu addItem:placeholder];
[menu popUpMenuPositioningItem:[menu itemAtIndex:0]
atLocation:CGPointMake(500, 500)
inView:nil];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
NSArray<NSMenuItem*>* items = [self prepareAdditionalItems];
dispatch_sync(dispatch_get_main_queue(), ^{
[menu removeItem:placeholder];
for (NSMenuItem* item in items) {
[menu addItem:item];
});
});
});
返回您描述的字符串列表,您可以使用 join 完全使用jq完成此操作,格式如下:
.after[]