Я хочу получить что-то вроде
[06:32:35] [Server thread/INFO]: [0;36;1m | [0;36;22m|__) [0;32;22mLuckPerms [0;36;1mv4.3.73[m
[06:32:35] [Server thread/INFO]: [0;36;1m |___ [0;36;22m| [0;30;1mRunning on Bukkit - CraftBukkit[m
но я получаю
[06:05:02] [Server thread/INFO]: | |__) LuckPerms v4.3.73
[06:05:02] [Server thread/INFO]: |___ | Running on Bukkit - CraftBukkit
При запуске сервера minecraft с использованием child_process
prcs.stdout.on("data", function(d) {
console.info(d.toString());
});
d это <Буфер>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не зная точно, как формируется d, вот что-то, что соответствует вашему примеру, возможно, не совсем так, как вам нужно, но вы всегда можете попробовать и обновить его (и, по крайней мере, это не требует никакой зависимости):
const versionRegExp = /v[0-9]+(\.[0-9]+)*$/;
d.toString().split("\n").forEach((line) => {
// no idea what the spaces are made of
const exploded = line.trim().split(/[ \t]+/);
// add paddings to the first two structures
const first = exploded.shift().padEnd(5, ' ');
const second = exploded.shift().padEnd(7, ' ');
// work out the content
// condition based on `second`, or should it be remainder.match(versionRegExp) ?
const remainder = 0 === second.indexOf('|__)')
? `[0;30;1m${exploded.join(' ').replace(versionRegExp, '[0;36;1m$&')}[m`
: `[0;32;22m${exploded.join(' ')}[m`
;
// format line and display
console.info(`[0;36;1m${first}[0;36;22m${second}${remainder}`);
});
НЕТ! Мне нужно вывести ANSI из процесса child_process stdout, child_process — это модуль для nodejs
Этот код должен дать вам представление о том, как это можно сделать (хотя он очень широк, поскольку вы не ответили на мои вопросы в комментариях). Адаптация его к вашему контексту (о котором я мало знаю, учитывая ваш краткий пост) зависит от вас.
Как ты не понимаешь? Я имею в виду, что child_process STDOUT не выводит ANSI
Ваш вопрос касался добавления управляющих последовательностей ANSI в строку. Цитата: Я хочу что-то вроде [строки с расширением ANSI], но получаю [стандартные строки]. Если вам не нравится ответ, переосмыслите вопрос.
Какова структура
d? Это уже строка? Части разделены пробелами или табуляцией? Каковы повторяющиеся частиd? (Тогда вы, вероятно, можете решить это с помощью регулярных выражений и/или строковых методов, таких какsplitиindexOf.)