Open1
テキストファイルの連続置換
import fs from 'fs/promises';
// 変換リストを読み込む関数
async function loadConversionList(filePath) {
const data = await fs.readFile(filePath, 'utf-8');
const lines = data.split('\n');
const conversionMap = new Map();
for (const line of lines) {
const [before, after] = line.split(',');
if (before && after) {
conversionMap.set(before.trim(), after.trim());
}
}
return conversionMap;
}
// テキストファイルの語句を置換する関数
async function replaceWordsInFile(inputFilePath, outputFilePath, conversionListPath) {
const conversionMap = await loadConversionList(conversionListPath);
let text = await fs.readFile(inputFilePath, 'utf-8');
for (const [before, after] of conversionMap.entries()) {
const regex = new RegExp(before, 'g');
text = text.replace(regex, after);
}
await fs.writeFile(outputFilePath, text, 'utf-8');
}
// 使用例
const inputFilePath = 'input.txt';
const outputFilePath = 'output.txt';
const conversionListPath = 'conversion_list.txt';
replaceWordsInFile(inputFilePath, outputFilePath, conversionListPath)
.then(() => console.log('置換が完了しました。'))
.catch(err => console.error('エラーが発生しました:', err));