Como saber a quantidade de caracteres de uma variável? [RESOLVIDO]

1. Como saber a quantidade de caracteres de uma variável? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 21/03/2016 - 16:12h

Oi galera, preciso da ajuda de vcs... meu problema é o seguinte:

eu uso o comando nmap pra pegar algumas informações de um host em específico.

#: nmap -sS -sU -p U:137,T:139 --script smb-os-discovery.nse 10.3.xx.xx

a saída:

Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-03-21 15:58 BRT
Nmap scan report for 10.3.XX.XX
Host is up (0.00051s latency).
PORT STATE SERVICE
13X/tcp open XXXXXXXX
13X/udp open XXXXXXX
MAC Address: 0X:XX:XX:XX:XX:XX (Cadmus Computer Systems)

Host script results:
| smb-os-discovery:
| OS: Windows 7 Professional 7600 (Windows 7 Professional 6.1)
| OS CPE: cpe:/o:microsoft:windows_7::-:professional
| Computer name: XASOP04
| NetBIOS computer name: XASOP04
| Workgroup: XXXX
|_ System time: 2016-03-21T15:59:55-03:00

Nmap done: 1 IP address (1 host up) scanned in 0.57 seconds


A partir daí eu filtro o nome da máquina:

netbios=$(cat 0_[nmap]_[$faixa_rede].txt | grep NetBIOS | awk '{ print $5}')
echo $netbios


saída:

#: XASOP04


Eu queria "contar" a quantidade de caracteres que está na variável $netbios ( no caso XASOP04 ) cujo retorno fosse 7 ( pois XASOPE04 tem 7 caracteres formando seu conteúdo ).

tentei usar o comando wc, mas sem êxito, ele mostra a qtd dentro de um arquivo, mas não do conteúdo de uma variável.
meu objetivo era criar uma lista de nomes de máquina cujo nomes fossem menores do que 8 caracteres ele seria preenchido com "-" até completar 08 caracteres ( NO MÍNIMO )

tipo assim:

XASOP0422 ( 09 CARACTERES OK )

XASOP041 ( 08 CARACTERES OK )

XASOP04 ( 07 CARACTERES -- )

Aí o "XASOP04", teria que ir pra tela assim:

XASOP04-

Alguém pode me ajudar?


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/03/2016 - 17:39h

luizcarlos18rj escreveu:

Oi galera, preciso da ajuda de vcs... meu problema é o seguinte:

eu uso o comando nmap pra pegar algumas informações de um host em específico.

#: nmap -sS -sU -p U:137,T:139 --script smb-os-discovery.nse 10.3.xx.xx

a saída:

Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-03-21 15:58 BRT
Nmap scan report for 10.3.XX.XX
Host is up (0.00051s latency).
PORT STATE SERVICE
13X/tcp open XXXXXXXX
13X/udp open XXXXXXX
MAC Address: 0X:XX:XX:XX:XX:XX (Cadmus Computer Systems)

Host script results:
| smb-os-discovery:
| OS: Windows 7 Professional 7600 (Windows 7 Professional 6.1)
| OS CPE: cpe:/o:microsoft:windows_7::-:professional
| Computer name: XASOP04
| NetBIOS computer name: XASOP04
| Workgroup: XXXX
|_ System time: 2016-03-21T15:59:55-03:00

Nmap done: 1 IP address (1 host up) scanned in 0.57 seconds


A partir daí eu filtro o nome da máquina:

netbios=$(cat 0_[nmap]_[$faixa_rede].txt | grep NetBIOS | awk '{ print $5}')
OITO_CARAC
echo $netbios


saída:

#: XASOP04


Eu queria "contar" a quantidade de caracteres que está na variável $netbios ( no caso XASOP04 ) cujo retorno fosse 7 ( pois XASOPE04 tem 7 caracteres formando seu conteúdo ).

tentei usar o comando wc, mas sem êxito, ele mostra a qtd dentro de um arquivo, mas não do conteúdo de uma variável.
meu objetivo era criar uma lista de nomes de máquina cujo nomes fossem menores do que 8 caracteres ele seria preenchido com "-" até completar 08 caracteres ( NO MÍNIMO )

tipo assim:

XASOP0422 ( 09 CARACTERES OK )
XASOP041 ( 08 CARACTERES OK )
XASOP04 ( 07 CARACTERES -- )
Aí o "XASOP04", teria que ir pra tela assim:
XASOP04-
Alguém pode me ajudar?

---------------------------------------------------------------------------------------------------------------------------------------
Boa tarde luizcarlos18rj.
Para contar os caracteres, vc pode usar:

NCarac=${#netbios}
ou
Ncarac=$(echo -n $netbios|wc -c)
--------------------------------------------------------
Para completar "$netbios" com "-" até ficar com 08 CARACTERES, use a função abaixo:

OITO_CARAC() {
while ((${#netbios}<8));do
netbios=$(sed 's/$/-/' <<< "$netbios")
done
}


OBS: Posicionei a CHAMADA da FUNÇãO OITO_CARAC no seu script

Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos, o que incentiva a continuar colaborando/ajudando/participando/compartilhando . . . :)

Att.:
Marcelo Oliver


3. Obrigado Marcelo

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 22/03/2016 - 13:42h

Valew mesmo parceiro, era disso o que precisava...

Obrigado pelo tempo dispendido em ajudar.


4. Re: Como saber a quantidade de caracteres de uma variável? [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/03/2016 - 13:52h

luizcarlos18rj escreveu:
Valew mesmo parceiro, era disso o que precisava...
Obrigado pelo tempo dispendido em ajudar.

------------------------------------------------------

Boa tarde luizcarlos18rj.
Por nada.
Precisando, estou por aqui...

att.:
Marcelo








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts