Skip to content

Instantly share code, notes, and snippets.

@meldsza
Last active July 12, 2018 16:03
Show Gist options
  • Save meldsza/8f0c8c2958cff665a25bc45169c63914 to your computer and use it in GitHub Desktop.
Save meldsza/8f0c8c2958cff665a25bc45169c63914 to your computer and use it in GitHub Desktop.
const config = {
filepath: "./file.log",
line_delimiter: "\n",
line_should_contain: "permit",
to_remove: [/[\r\n]/g],
original_column_delimiter: " ",
columns_to_be_removed: [1, 2, -1, -2]
}
const fs = require('fs');
let file_data = fs.readFileSync(config.filepath, { encoding: 'utf-8' });
file_data = file_data.split(config.line_delimiter);
let new_file_data = file_data.filter((data) => {
if (data.includes(config.line_should_contain))
return true
else
return false
})
new_file_data.unshift("sep=,")
new_file_data = new_file_data.map((data) => {
data = data.trim()
config.to_remove.map((remove_data) => {
data = data.replace(remove_data, "to_be_removed")
})
data = data.split(config.original_column_delimiter)
config.columns_to_be_removed.map((column_no) => {
if (column_no < 0)
column_no = data.length + column_no
data[column_no] = "to_be_removed"
})
data = data.join(",")
data = data.replace(/,to_be_removed/g, "")
//data = data.replace(/any/g, "any,")
data = data.replace(/eq/g, ",eq")
data = data.replace(/,host/g, "")
data = data.split(",")
if (data[5]) {
data[5] = "," + data[5]
}
data = data.join(",")
data = data.split(",")
if (data[6]) {
if (data[6].startsWith("255.255"))
data[5] = "to_be_removed"
}
data = data.join(",")
data = data.replace(/,to_be_removed/g, "")
data = data.split(",")
if (data[7])
if (!/\d/.test(data[7]))
//if (data[7].trim() != "")
data[7] = "," + data[7]
data = data.join(",")
return data
});
console.log(new_file_data.join("\n"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment