Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const tar = require('tar');
- const csv = require('csv');
- const path = require('path');
- const iconvl = require('iconv-lite');
- let onFail = (err) => {
- console.error(err);
- process.exit();
- };
- let unpack = new tar.Parse({
- onwarn: (msg, data) => {
- console.error(msg, data);
- process.exit();
- },
- });
- unpack.on('entry', (entry) => {
- let {path, type} = entry;
- let skip = () => {
- console.log('skipping', path);
- entry.resume();
- };
- let target = 'Association.txt';
- if(type !== 'File' || path !== target) return skip();
- let counter = 0;
- let parser = new csv.parse({
- delimiter: String.fromCodePoint('0x0001'),
- rowDelimiter: String.fromCodePoint('0x0002'),
- skip_lines_with_empty_values: true,
- quote: false,
- columns: true,
- trim: true,
- });
- parser.on('error', onFail);
- parser.on('data', _ => console.log(++counter));
- let iconv = new iconvl.decodeStream('utf-8');
- console.log('Parsing');
- entry.pipe(iconv).pipe(parser);
- });
- let p = path.resolve(__dirname, 'full_inform_171201_utf8.tar.gz');
- let stream = fs.createReadStream(p);
- console.log('Unpacking');
- stream.pipe(unpack);
Add Comment
Please, Sign In to add comment