返回列表

node下批量修改文件内容 遍历

默认分类 2018/07/10 10:59

walkthrough,walker,walkdir

大批量修改文件这种活还是交给脚本来处理吧

#!/usr/bin/env node
var fs = require('fs')
var path = require('path')
function fatal(message) {
  console.error(message)
  process.exit(1)
}
function processFile(inputFile) {
  fs.readFile(inputFile, {
    encoding: 'utf8'
  }, function(err, data) {
    if (err) return fatal('Cannot read ' + inputFile + '

' + err.message)

    var txt = modifyContent(data)
    fs.writeFile(inputFile, txt, {
      encoding: 'utf8'
    }, function(err) {
      if (err) return fatal('Cannot write ' + inputFile + '

' + err.message) else console.log('ok ' + inputFile) }) }) } function processDirectory(inputDir, fileExt) { fs.readdir(inputDir, function(err, files) { if (err) return fatal('Cannot read directory ' + inputDir + ' ' + err.message)

    files.forEach(function(file) {
      var inputFile = path.join(inputDir, file)
      fs.stat(inputFile, function(err, stat) {
        if (err) return fatal('Cannot read ' + inputFile + '

' + err.message)

        if (stat.isDirectory()) {
          processDirectory(inputFile, fileExt)
        } else if (!fileExt || path.extname(file) === '.' + fileExt) {
          processFile(inputFile)
        }
      })
    })
  })
}
// function modifyContent (str) {
//  return str.split('  ').join('  ').replace('<div class="post"', '  <div class="post"')
// }
// function modifyContent (str) {
//  return str.replace(/^([^\t]|

|\r)+\t/ig, ' ') // } // function modifyContent (str) { // return str.split(' ').join(' ').replace('', ' ') // } function modifyContent (str) { return str.replace(/\t([^\t]| |\r)+$/ig, '') } processDirectory('html_new', 'html')