Executando verificação de segurança...
2

[JS] Separando string da funçao exec() do modulo shelljs

Bom dia, galera!

Estou desenvolvendo um programa que le cada ip da minha rede usando o modulo shelljs, porém nao consigo separar os dados retornados, quero retornar cada linha retornada em uma array de tamanho n, onde n é a quantidade de linhas retornada.

const shell = require('shelljs')

//acho que aq da pra separar mas nao sei como

let ips[] = shell.exec('arp -a')
for( i = 0; i<ips.length;i++)
    console.log(ips[i])
Carregando publicação patrocinada...
2

Se o mesmo retorna algo como:

10.0.0.1 (10.0.0.1) at 24:fd:d:15:d8:91 on en0 ifscope [ethernet]
10.0.0.104 (10.0.0.104) at be:f3:5:d4:13:c0 on en0 ifscope [ethernet]

E você precisa somente do IP, o certo é verificar se cada linha retornada é uma string. Se sim, poderia fazer:


const unsanitizedIps[] = shell.exec('arp -a')
const sanitizedIps = []

for(let i = 0; i<ips.length;i++) {
   sanitizedIps.push(unsanitizedIps[i].split('(')[0].trim())
   // linha: 10.0.0.1 (10.0.0.1) at 25:ad:d:12:d2:11 on en0 ifscope [ethernet] 
   // saida: 10.0.0.1
   // Obs.: o split pode ser feito no espaço em branco também. ".split(' ')"
}  

Edit: Se entendi certo, é isso ai.

1
1
1

Joga em um chunk que já separa pra você.

Pode fazer isso com Readers ou Stream, nativa no node.js

Pode optar também por um split usnado regex para \r\n e \n