flysmog.pages.dev

Como validar CNPJ com máscara diferente no terminal?

Validar um CNPJ com máscara diferente no terminal pode parecer complexo, mas com o script certo, você automatiza essa tarefa em segundos, garantindo precisão e evitando erros manuais.

Pré-requisitos

Passo 1: Criar o script de validação

Crie um arquivo chamado validar_cnpj.py e adicione o código abaixo. Este script remove máscaras comuns (pontos, barras, traços, espaços) e valida o CNPJ usando o algoritmo padrão.

import re

def remover_mascara(cnpj):
    return re.sub(r'[^0-9]', '', cnpj)

def validar_cnpj(cnpj):
    cnpj = remover_mascara(cnpj)
    if len(cnpj) != 14 or not cnpj.isdigit():
        return False

    # Primeiro dígito verificador
    pesos1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
    soma = sum(int(cnpj[i]) * pesos1[i] for i in range(12))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto

    # Segundo dígito verificador
    pesos2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
    soma = sum(int(cnpj[i]) * pesos2[i] for i in range(13))
    resto = soma % 11
    digito2 = 0 if resto < 2 else 11 - resto

    return str(digito1) == cnpj[12] and str(digito2) == cnpj[13]

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 2:
        print("Uso: python validar_cnpj.py <CNPJ>")
        sys.exit(1)

    cnpj = sys.argv[1]
    if validar_cnpj(cnpj):
        print(f"CNPJ {cnpj} é válido.")
    else:
        print(f"CNPJ {cnpj} é inválido.")

Passo 2: Tornar o script executável

No terminal, navegue até o diretório onde o arquivo foi salvo e execute:

chmod +x validar_cnpj.py

Passo 3: Validar CNPJ com máscara

Use o comando abaixo para validar um CNPJ com qualquer máscara:

python validar_cnpj.py 12.345.678/0001-95

Exemplo Prático

CNPJ de Entrada Removido Máscara Válido?
12.345.678/0001-95 12345678000195 Sim
12.345.678/0001-99 12345678000199 Não
12345678000195 12345678000195 Sim
12 345 678 0001 95 12345678000195 Sim

Conclusão

Com este método, você valida CNPJs com qualquer máscara diretamente no terminal, eliminando a necessidade de formatação manual e garantindo resultados confiáveis em segundos.