+ Responder ao Tópico



  1. #1
    thiagog
    Visitante

    Padrão bash - lendo conteudo de arquivos.. HELP ..!!

    pessoal,
    nao sou bom em scripts, e precisod e uma ajuda tenho um arquivo com 19000 linhas com varios tipos de objetos onde preciso ler todos os objetos coletar de cada algumas informacao e colocalos em lista em um outro arquivo para poder importar para uma planilha eletronica.

    como faco isso?


    : (rede10.10.0.0
    :color (blue)
    :type (network)
    :location (internal)
    :broadcast (allow)
    :comments ("Meus Usuarios")
    :ipaddr (10.10.0.0)
    :netmask (255.255.0.0)
    :add_adtr_rule (true)
    :netobj_adtr_method (adtr_hide)
    :the_firewalling_obj (
    :type (refobj)
    :refname ("#FW")
    )
    :ip_pool_securemote (false)
    :valid_addr_name ("RedeSIA_10.201 (Hiding Address)")
    :valid_ipaddr (200.100.100.1)
    )

  2. #2
    gmlinux
    Visitante

    Padrão bash - lendo conteudo de arquivos.. HELP ..!!

    awk é muito bom para lidar com arquivos com campos definidos

  3. #3
    Visitante

    Padrão bash - lendo conteudo de arquivos.. HELP ..!!

    exemplo:

    Se eu tivesse um arquivo chamado file1, como:
    numeroum
    numerodois
    letraa
    letrab
    letrac
    letrad

    e quisese inserir (uma em cada linha) os dados:
    numerodois e letrab, um depois do outronum arquivo chamado file2, eu faria:

    #!/bin/bash
    cat file1 | grep numerodo* >> file2 ;
    cat file1 | grep letrab >> file2;
    ...

    Mas daria pra botar num loop, se fossem muitas strings.

    Sds,

  4. #4
    Visitante

    Padrão bash - lendo conteudo de arquivos.. HELP ..!!

    é awk, ou se tu quiser mais funcionalidade, perl + expressoes regulares... ou ateh mesmo php + regex rodadno na shell

  5. #5
    thiagog
    Visitante

    Padrão linhas VAZIAS . . .

    e como faco para remover todas as linhas VAZIAS de um arquivo ?
    com awk e sed eu resolvi o que eu precisava, obrigado ...

    obrigado,

  6. #6
    gmlinux
    Visitante

    Padrão bash - lendo conteudo de arquivos.. HELP ..!!

    use a expressão regular: ^$
    exemplo:
    sed -n -e "/^[^$]/p" file

    onde o ^ indica início da linha e o $ final da linha, sendo que o ^ dentro do colchete e como primeiro caracter é uma negação, assim, meu comando imprime todas as linhas que não tenham como segundo caracter o final da linha.

  7. #7
    thiagog
    Visitante

    Padrão obrigado

    obrigado galera, valeus.