2013-10-10 101 views
-1

好吧,在一个文档添加文本到一定行的,我需要的文本行添加到某行的json文件使用批处理

例子:

"Forge": { 
     "name": "Forge", 
     "lastVersionId": "1.6.4-Forge9.11.1.916" 
     }, 

进入一个现有json文件在某一行 可能吗?

+0

嘿!为什么所有的评论都没有评论?这是一个合理的问题。 – nephi12

+0

@ user2867397如何确定“确定”行?按数字?字符串搜索?你有尝试过什么吗?问题是什么? –

+0

按行号。 – user2867397

回答

0
@echo on&setlocal enabledelayedexpansion 
set NLM=^ 



set NL=^^^%NLM%%NLM%^%NLM%%NLM% 

set a= 
set b=0 
for /f "delims==" %%i in (file.txt) do (
    set /a b+=1 
    set a=!a!%%i!nl! 
    if "!b!" EQU "2" (set a=!a!"Forge": {!nl!  "name": "Forge",!nl!   "lastVersionId": "1.6.4-Forge9.11.1.916"!nl!  },!nl!) 
) 
(echo %a%)>>newfile.txt 

线后插入,看到编辑历史;)

+0

是啊,本来是说行数感谢回复! – user2867397

+0

如果这对你有帮助,请标记为正确答案。 ; p – nephi12

+0

唯一的问题是,它把全部输出放在第一行 – user2867397

0

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

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

批处理文件是一个窗口的东西。 – nephi12

+0

sed适用于Windows,只需将单引号改为双引号。 – Endoro

+0

我不认为OP在他不需要的时候想安装一个新程序来做这件事。 – nephi12

0

使用正确的JSON解析器添加foobar用于键lastVersionId的值:

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" 
    } 
}