吞咽如何在不重复行的情况下合并文件



我需要用gump合并两个文件。像

concat = require('gulp-concat')
gulp.src(['file1', 'file2'])
.pipe(concat('merge'))
.pipe(gulp.dest('dest/'));

但没有线条重复。所以,若两个文件包含同一行,合并文件只需要包含这一行一次。

文件1

lineA
lineB
lineC

文件2

lineD
lineA
lineF

合并

lineA
lineB
lineC
lineD
lineF

有插件吗?请帮忙)

您需要使用缓冲区映射器,以下是映射流的示例:

var concat = require('gulp-concat');
var map    = require('map-stream');
var uniqueFilterFn = function(item, idx, all) {
  return idx === all.indexOf(item);
};
gulp.src(['file1', 'file2'])
.pipe(concat('merge'))
.pipe(map(function(file, cb) {
  // convert file buffer into a string
  var contents = file.contents.toString();
  // split it by lines
  var lines = contents.split(/[rn]/);
  // apply the unique filter
  var uniqueLines = lines.filter(uniqueFilterFn);
  // join unique list into lines
  var output = uniqueLines.join('n');
  // convert string back into buffer
  var buffer = new Buffer(output, 'binary');
  // replace the file contents
  file.contents = buffer;
  // continue
  return cb(null, file);
}))
.pipe(gulp.dest('dest/'));

相关内容

  • 没有找到相关文章

最新更新