首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换nodejs中的特定文件内容

替换nodejs中的特定文件内容
EN

Stack Overflow用户
提问于 2019-05-28 16:55:10
回答 2查看 32关注 0票数 0

我想用新内容替换使用javascript的特定行。这是文件内容,

代码语言:javascript
运行
复制
SERVER=1055@localhost

GROUP_SERVERS=2325@localhost

LINE_IAM_INTERESTED=KTYUIERVW:2800

FILE_PATH="C:\Program Files\somefile\Shared Files\"

在这行中,LINE_IAM_INTERESTED=KTYUIERVW:2800 .I希望将KTYUIERVW替换为KJHTERDY,将2800替换为78945

我已经展示了我尝试使用的文件系统appendfilesync

代码语言:javascript
运行
复制
fs.appendFileSync('file_name').toString().split('\n').forEach(function(line){
    app.console.log("called append");
    var sEntry = line.split("=");
    if (sEntry.length == 2) {
      if (sEntry[0] == "LINE_IAM_INTERESTED") {
      app.console.log("found one!!!!");
      }
    }
  });
EN

回答 2

Stack Overflow用户

发布于 2019-05-28 17:09:12

您可以尝试READ -> REPLACE -> WRITE flow:

代码语言:javascript
运行
复制
fs.writeFileSync('file_name', fs.readFileSync('file_name').replace('KTYUIERVW:2800', 'KJHTERDY:78945'))
票数 0
EN

Stack Overflow用户

发布于 2019-05-28 17:31:45

appendFileappendFileSync用于添加到文件的末尾。虽然您可以像另一个答案中所示的那样使用一行代码,但我保持了代码的结构不变。这里你想要读取数据,修改它,然后重写它。使用您拥有的代码块,您可以修改它以使用readFileSyncwriteFileSync

代码语言:javascript
运行
复制
let newData = fs.readFileSync('file_name', 'utf-8').split('\n').map(line => {
  let sEntry = line.split('=')
  if (sEntry.length == 2) {
    if (sEntry[0] == "LINE_IAM_INTERESTED") {
      console.log("found one!!!!");
      return sEntry[0] + '=' + 'KJHTERDY:78945'
    }
  }
  return line
}).join('\n')

fs.writeFileSync('file_name', newData)

我用map替换了forEach,它允许我们通过返回所需的值来更改数组数据。然后将新数组重新组合在一起,并将其写回到文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56338430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档