Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 使用批处理将文本添加到文档中的某一行_Json_Batch File_Perl - Fatal编程技术网

Json 使用批处理将文本添加到文档中的某一行

Json 使用批处理将文本添加到文档中的某一行,json,batch-file,perl,Json,Batch File,Perl,好的,我需要在json文件中的某一行添加一行文本 例如: "Forge": { "name": "Forge", "lastVersionId": "1.6.4-Forge9.11.1.916" }, 到某一行的现有json文件中 可能吗?是的,你可以。尝试使用unix命令“sed”。 在您的情况下,使用以下脚本将其插入第5行: sed -i '5i "Forge": { "name": "Forge", "lastVersionId": "1.

好的,我需要在
json
文件中的某一行添加一行文本

例如:

"Forge": {
        "name": "Forge",
        "lastVersionId": "1.6.4-Forge9.11.1.916"
        },
到某一行的现有
json
文件中
可能吗?

是的,你可以。尝试使用unix命令“sed”。 在您的情况下,使用以下脚本将其插入第5行:

sed -i '5i "Forge": { "name": "Forge", "lastVersionId": "1.6.4-Forge9.11.1.916" }' Json.file

要在行后插入,请参见编辑历史;)

在中使用适当的JSON解析器为键
lastVersionId
的值添加
foobar

use strict; use warnings;
use JSON;
my $json = <<EOF;
{
    "Forge": {
        "name": "Forge",
        "lastVersionId": "1.6.4-Forge9.11.1.916"
        }
}
EOF
my $perl_DS = decode_json $json;
$perl_DS->{Forge}->{lastVersionId} .= " foobar";
print encode_json $perl_DS;

批处理文件是windows的东西。sed对windows来说是可以的,只需将单引号改为双引号。我认为OP不想在不需要的时候安装一个新程序来完成这项工作。它是发送给朋友来安装一些东西,所以是的,不能真正安装程序来完成这项工作,只能使用香草批处理嘿!!!为什么所有的反对票都没有评论?这是一个合理的问题。@user2867397“确定”行是如何确定的?按数字?字符串搜索?你试过什么吗?问题是什么?唯一的问题是,它将全部输出放在第一行。你是什么意思?我在一个有9行的文件上测试了这一点,指定了第2行,newfile.txt包含10行,新的一行插入了正确的位置。你保留了所有的空行吗?空行允许将整个文件存储在变量中。如果您的意思是将插入的线全部放在一行上,只需在if中添加更多的集。请给我一些关于这个问题的更多信息,我会修改代码。看到这个,我想把Forge放在第3行,但是当我尝试时,输出都在第1行
use strict; use warnings;
use JSON;
my $json = <<EOF;
{
    "Forge": {
        "name": "Forge",
        "lastVersionId": "1.6.4-Forge9.11.1.916"
        }
}
EOF
my $perl_DS = decode_json $json;
$perl_DS->{Forge}->{lastVersionId} .= " foobar";
print encode_json $perl_DS;
$ perl script.pl | json_pp
{
   "Forge" : {
      "name" : "Forge",
      "lastVersionId" : "1.6.4-Forge9.11.1.916 foobar"
   }
}