NodeJS: оценить вывод для строк, которые удовлетворяют нескольким условиям - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть локальное приложение NodeJS, которое сканирует файлы и возвращает длинный вывод результатов, аналогичных приведенным ниже (один блок [*] (/home/directory/file1): FOUND для каждого файла, который был отсканирован в каталоге, на который я смотрю):

[*] (/home/directory/file1): FOUND
    \_ Results: 11/71 DETECTED
       SHA256: ...

[*] (/home/directory/file2): FOUND
    \_ Results: 4/71 DETECTED
       SHA256: ...
...

Я сохраняю эти выходные данные в переменную с именем scanResult и сообщаю приложению, вернулось ли сканирование с результатом ПЛОХОЙ или ХОРОШИМ результатом, просто основываясь на том, было ли найдено слово * 1007. * ОБНАРУЖЕНО или, если еще найдено слово НЕ НАЙДЕНО . Очень основа c.

ipcMain.on('runScan', (event) => {

    cp.exec('python virus-scan.py /media/files/', (err, data) => {

        // stores the output of the virus-scan.py into scanResult
        let scanResult = data.trim();

        // looks to see if the output contains the word DETECTED
        if (scanResult.includes('DETECTED')) {

            // calls a function and tells ipcMain that the scanned file is bad
            doSomething();
            event.sender.send('dirty');

        // No occurrence of the word DETECTED? Okay look for NOT FOUND
        } else if (scanResult.includes('NOT FOUND')) {

            // calls a function and tells ipcMain that the scanned file is good
            doSomethingElse();
            event.sender.send('clean');

Проблема в том, что в зависимости от одного вхождения слова ОБНАРУЖЕНО делает приложение СЛИШКОМ ЧУВСТВИТЕЛЬНЫМ, оно помечает все и вся.

Чтобы настроить его, я бы хотел изолировать вхождения Результат: # / # из вывода, сохраненного в переменной scanResult , и сообщать только о том, что сканирование загрязнено с event.sender.send('dirty'); ЕСЛИ есть даже 1 вхождение Результат: # / # , где числитель>> 5 в выводе

Любое руководство будет действительно оценено Я немного застрял , Может быть, какая-то реализация разделения на '/' затем захватывает запись [0] разделения? Или .match(/Results: (\d*?\/\d*?)/g)? Я просто не уверен, как go об этом или реализовать.

...