【问题标题】:Convert text file to json with proper key value pair使用正确的键值对将文本文件转换为 json
【发布时间】:2019-12-06 21:10:27
【问题描述】:

我创建了一个包含我收集的所有 groupId 的文本文件 来自 pom.xml 并想与预定义的配置进行比较 使用 sed sh 命令完成。我的文本文件是这样的

com.capgemini.psd2
org.springframework.boot
org.springframework.boot
com.capgemini.psd2

我想使用 sed/sh 转换成如下格式

groupId: {
     "key1":"com.capgemini.psd2"
     "key2":"org.springframework.boot"
     "key3":"org.springframework.boot"
     "key4": "com.capgemini.psd2"}

【问题讨论】:

  • 先贴出你卑微的解决方案尝试,然后我们考虑如何进步。您可能会得到更好的结果/解决方案。通过包含整个任务,样本输入和样本输出。

标签: json sed


【解决方案1】:

尽管使用jqpython 之类的东西来处理JSON/XML 数据可能会更好,但sed 并不适合进行预处理。本方案建议使用awk

考虑到您希望 NR 成为 keynum。

awk '
BEGIN {print "groupId: {"}
{print "\"key" NR "\":" "\""$0 "\""}
END {print "}"}' file

输出:

groupId: {
"key1":"com.capgemini.psd2"
"key2":"org.springframework.boot"
"key3":"org.springframework.boot"
"key4":"com.capgemini.psd2"
 }

【讨论】:

  • 感谢您的回复...我正在使用 DSL (Groovy) 如何在代码中包含 awk,因为它给了我 java.lang.NoSuchMethodError: No such DSL method 'awk' found between steps error跨度>
  • 在代码中创建了提供的命令 ['awk', 'BEGIN{print "groupId": {"} {print "\"key" NR "\":" "\""$0 "\" "} END {print "}"}" ${env.WORKSPACE}/project/groupFile'].execute() 但仍然失败你能帮我写下这段代码吗?我已经写了我的 groovy 代码..跨度>
  • sh "sed '/pom.xml/d' -i ${env.WORKSPACE}/project/groupFile" sh "sed '/-- /d' -i ${env .WORKSPACE}/project/groupFile" sh "sed '/-- /d' -i ${env.WORKSPACE}/project/groupFile" sh "sed 's/^[ \t]*//' -i ${ env.WORKSPACE}/project/groupFile" sh (script: ['awk', 'BEGIN{print "groupId": {"} {print "\"key" NR "\":" "\""$0 "\" "} END {print "}"}" ${env.WORKSPACE}/project/groupFile'].execute())
猜你喜欢
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多