У меня есть локальное приложение 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 об этом или реализовать.