Filter lines matching a pattern
Aa TextFilter log lines matching a pattern
$ echo "INFO: started
ERROR: disk full
INFO: request ok
ERROR: timeo..." | grep (input, opts = {}) => {
if (!opts.pattern) return input;
try {
const re = new RegExp(opts.pattern, "i");
return input
.split("\n")
.filter((l) => (opts.invert ? !re.test(l) : re.test(l)))
.join("\n");
} catch {
return `Error: invalid regex "${opts.pattern}"`;
}
}