我想用新内容替换使用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
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!!!!");
}
}
});
发布于 2019-05-28 17:09:12
您可以尝试READ -> REPLACE -> WRITE flow:
fs.writeFileSync('file_name', fs.readFileSync('file_name').replace('KTYUIERVW:2800', 'KJHTERDY:78945'))
发布于 2019-05-28 17:31:45
appendFile
和appendFileSync
用于添加到文件的末尾。虽然您可以像另一个答案中所示的那样使用一行代码,但我保持了代码的结构不变。这里你想要读取数据,修改它,然后重写它。使用您拥有的代码块,您可以修改它以使用readFileSync
和writeFileSync
。
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
,它允许我们通过返回所需的值来更改数组数据。然后将新数组重新组合在一起,并将其写回到文件中。
https://stackoverflow.com/questions/56338430
复制相似问题