Как в txt файле оставить только 2 строчки после определенного слова выше?

Есть txt файл , вот его содержимое:
===============
f fgyuf
с Scryptics
s Nartelis19
rhvrihvieg445gv54vuv
===============
gk qwerty gfhfg
с h5vvh5vh5vh5
s bj65v54gc4g
gdfgdsggrsgdg433
===============
dgf ffrffef
c c4ccf4cf4cf4fc4
s Ugniukas1
v4gv4v5g4g4vg5v4
===============
gk qwerty kfefdf
c vg545v4gv45gv5g4v5g4
s jb6jb6jb6j
g4g4vv4gv4gvg4
===============
gtth vdvfv gtggg
c vg4vg45v45gvg4545vgv45g
s v454vgv545v4gvg45
v4gg4vvg4g4vvg4vg45vg45vg4545vg
===============
fvdver 443342
c cffx2sx2xs2xs2
s xe332xd23f4v5gh5b6
445vgv45gv45gv45gv45g45vg
===============


Вопрос:
Как джаваскриптом оставить только 2 строчки которые идут после строчки, в которой есть "фраза": gk qwerty ?
61b6791767954222832829.jpeg

И эти две строчки поставить через двоеточие?

Должно остаться в txt файле вот так:
с h5vvh5vh5vh5:s bj65v54gc4g
c vg545v4gv45gv5g4v5g4:s jb6jb6jb6j
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
@rPman
* завести int status переменную, определяющую статус, что сейчас делаем, поиск подстроки (если значение 0) или вывод (если значение 1 или2, т.е. это количество выводимых строк))
* читать файл построчно в цикле, пока он не закончится
* для каждой строчки проверять искомую подстроку, если найдена - status =2 и continue
* если status >0 то выводим строку
* если status =2, выводим ': ' если status=1 то выводим '\n'
* если status >0 уменшаем на 1
Ответ написан
Комментировать
olegbarabanov
@olegbarabanov
Программист, фрилансер (ИП)
Если текст небольшой, можно использовать регулярные выражения:
const inputText = ... ; // ваш текст
const regexpPattern = /gk qwerty.*\n(.*)\n(.*)\n+/gi;
const searchResult = inputText.matchAll(regexpPattern);
const outputText = Array.from(searchResult)
  .map((arr) => `${arr[1]}:${arr[2]}`)
  .join("\n");


Рабочий пример с вашим текстом можно посмотреть на codepen

P.S. Для чтения/записи файлов в nodejs => документация
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы