替换Node.js中的特定文件内容

时间:2019-05-28 08:55:10

标签: javascript fs

我想用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。我想将KTYUIERVW的{​​{1}}替换为KJHTERDY的{​​{1}}

我已经展示了我使用fs appendfilesync所做的尝试

2800

2 个答案:

答案 0 :(得分:0)

您可以尝试阅读->替换->写流程:

fs.writeFileSync('file_name', fs.readFileSync('file_name').replace('KTYUIERVW:2800', 'KJHTERDY:78945'))

答案 1 :(得分:0)

appendFileappendFileSync用于添加到文件末尾。尽管您可以像另一个答案中所示那样将其作为一个衬纸来完成,但是我将代码的结构保持不变。您要在此处读取数据,对其进行修改然后重新写入。使用已有的代码块,可以对其进行修改,以使用readFileSyncwriteFileSync

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)

我将forEach换成map,这使我们可以通过返回所需的值来更改数组数据。然后,将新数组重新组合在一起并写回到文件中。