#!/usr/bin/env node // Quand on veut garder les double quotes présentes dans les champs d'un TSV, on // peut utiliser ce script pour les échapper. const fs = require('fs/promises'); const fixField = (field) => { if (!field.includes('"')) return field; return `"${field.replace(/"/g, '""')}"`; } const fixLine = (line) => { const fields = line.split("\t"); return fields.map(fixField).join("\t"); } const getFixedTsvQuotes = (content) => { const lines = content.split("\r\n"); const fixedLines = lines.map(fixLine); const fixedContent = fixedLines.join("\n"); return fixedContent; } const fixFile = async (fileName) => { const content = await fs.readFile(fileName, { encoding: "utf8"}); const fixedContent = getFixedTsvQuotes(content); await fs.writeFile(fileName, fixedContent, { encoding: "utf8" }); }; const args = process.argv.slice(2); if (!args.length) { console.error(`${process.argv[1]} a besoin d'un nom fichier à corriger.`); process.exit(1); } fixFile(args[0]);