javascript - 使用 node.js 更改文件

标签 javascript node.js filesystems fs

我有一个如下所示的文本文件:

./4F6cFLnAAFc.png
./4Flj9plmKGQ.png
./4fQeHtSdw80.png
./4I9iibPLdBw.png
./4J-dRA3MGc8.png
./4mdEsouIXGM.png
./4-_-wQc3EGE.png
./595Tiga1gIg.png
./60u_ctp6UIw.png
./64bH_27Ehoc.png
./64_ZfIemRGM.png
./66pQLO--Ghk.png
./69rDtSpshAw.png
./69-YUSazuic.png

我想使用 node.js 将每行开头的 . 替换为“myString”。所以每个最终都会看起来像:myString/4F6cFLnAAFc.png

我正在尝试使用正则表达式,但我怀疑它可以使用读写流来完成。

var fs = require('fs');

fs.readFile('filelist.txt', 'utf-8', function(err, data){
    if (err) throw err;

    console.log(typeof(data)); // string

    data.replace(/\.\/+/, 'myString');

});

什么正则表达式可以工作,或者使用 Node 编辑这个文件的最佳方式是什么?

最佳答案

这里有两个同步或异步选项,具体取决于您的需要。

var fs = require('fs');

function readWriteAsync() {
  fs.readFile('filelist.txt', 'utf-8', function(err, data){
    if (err) throw err;

    var newValue = data.replace(/^\./gim, 'myString');

    fs.writeFile('filelistAsync.txt', newValue, 'utf-8', function (err) {
      if (err) throw err;
      console.log('filelistAsync complete');
    });
  });
}

function readWriteSync() {
  var data = fs.readFileSync('filelist.txt', 'utf-8');

  var newValue = data.replace(/^\./gim, 'myString');

  fs.writeFileSync('filelistSync.txt', newValue, 'utf-8');

  console.log('readFileSync complete');
}

readWriteAsync();
readWriteSync();

关于javascript - 使用 node.js 更改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21253019/

相关文章:

symfony - 使用原则 2 中的多态关系子集的多态附件

javascript - 单个 JavaScript 文件。在不插入内联脚本的情况下,如何检查特定页面是否已加载?

javascript - 在 vscode 中调试 JavaScript 时如何找到当前函数的闭包

java - 如何使用 ceratin Javascript 逻辑更新 JSP 页面 html 元素?

node.js - 使用nodemailer/sendgrid上传多个文件

javascript - 在不同文件中配置 AWS 时出现 ConfigError(本地使用 DynamoDB)

javascript - 如何在 NodeJS 中将整个路径名设置到变量中?

c# - 在 C# 中从 Windows 访问 iOs 文件系统

linux - chroot 替代

javascript - 更改节点类型