// 將.log文件轉成json,刪除不必要的字段(未刪干凈)
const fs = require('fs');
const path = require('path');
const sourceDir = './source'; // 源文件目錄路徑
const targetDir = './target_directory'; // 目標文件目錄路徑
// 遍歷指定目錄下的所有文件,并執行回調函數
function traverseDir(dir, callback) {
fs.readdirSync(dir).forEach(file => {
const filePath = path.join(dir, file);
if (fs.statSync(filePath).isDirectory()) {
const subDir = path.join(targetDir, filePath.substring(sourceDir.length + 1));
if (!fs.existsSync(subDir)) {
fs.mkdirSync(subDir);
}
traverseDir(filePath, callback);
} else {
callback(filePath);
}
});
}
// 刪除指定文件中符合條件的字符串
function deleteStringInFile(filePath) {
try {
let content = fs.readFileSync(filePath, 'utf8');
const regex = /2023-(.*?)content:/gs;
content = content.replace(regex, ',');
const targetFilePath = path.join(targetDir, filePath.substring(sourceDir.length + 1)) + '.json';
fs.writeFileSync(targetFilePath, content, 'utf8');
console.log(`Successfully processed file: ${filePath}`);
} catch (err) {
console.error(`Failed to process file ${filePath}: ${err.message}`);
}
}
// 遍歷指定目錄下的所有文件,并刪除符合條件的字符串
function deleteStringInDir(dir) {
traverseDir(dir, deleteStringInFile);
}
// 示例:刪除 D:\test 目錄及其子目錄下所有完整匹配的字符串
deleteStringInDir(sourceDir);