如何将多行粘贴到指定模板中

如何将多行粘贴到指定模板中

假设我有一堆文本行,如下所示:

Car
Tree
Bike

最后我想要的是:

[
{
"name": "Car",
"type": "object"
},
{
"name": "Tree",
"type": "object"
},
{
"name": "Bike",
"type": "object"
}
]

有什么工具可以做到这一点吗?基本上我想指定这样的模板:

{
"name": "$",
"type": "object"
}

其中$将被我的源文本中的一行替换。

答案1

任何具有正则表达式功能的文本编辑器都可以做到这一点。

以下是 Notepad++ 的一个示例

  • 输入单词列表
  • 打开替换对话框(CTRL+H)
  • 对于“查找什么”,请输入:(\w+)
  • 对于“替换为”,请输入:{\n"name": "$1",\n"type": "object"\n},\n
  • 检查“正则表达式”
  • “全部替换”

这不处理最外层的方括号 ( []),您需要手动添加它们

前:
在此处输入图片描述

后:
在此处输入图片描述

答案2

如果您希望编写脚本 - PowerShell 可以相当快地完成:

$template = $('
{
"name": "###",
"type": "object"
}
')

$alltext = "["

ForEach ($item in (Get-Content C:\Installs\objects.txt)) {
    $alltext += $template -replace "###", $item
}

$alltext += "]"
Write-Host $alltext

在此处输入图片描述

这还有一个额外的好处,就是可以通过在多个位置指定###来进行多次替换。如果您愿意,您还可以使用 CSV 文件进行多次替换。

为此,请确保您有不同的占位符,并记住 CSV 文件中的第一行将是代码中使用的标题:

在此处输入图片描述

相关内容