limite de palavras em um comando awk que não funciona ao imprimir um intervalo de linhas

0

Eu estou tentando analisar o arquivo samba .conf para uma seção de compartilhamento específica ...

[CMI]
    oplocks = no
    wide links = no
    writeable = yes
    delete readonly = yes
    path = /LOCALSITE/CMI
    comment = CMI Data
    write list = @cbishare 
    valid users = @cbishare
    create mode = 775
    directory mode = 775

Aqui está o código que estou usando para obter a seção específica usando o awk ...

awk '/\[\<CMI\>\]/{flag=1;next}/^$/{flag=0}flag' /etc/samba/smb.conf

Quando executo este comando awk sem o código para obter várias linhas {flag=1;next}/^${flag=0}flag , recebo apenas '[CMI]'.

Há algo errado com meu código para colocar todas as linhas em um caractere de nova linha ($)?

    
por Matt Pedigo 23.09.2014 / 23:50

1 resposta

0

Eu encontrei o problema depois de pensar sobre o novo caractere de linha no arquivo e como obtive o arquivo de teste. O arquivo de teste que estou usando foi copiado para a máquina de uma máquina Windows usando o Webmin através da função de configuração do samba e colocando isso em um compartilhamento do Windows no qual várias pessoas tinham aberto o arquivo para análise. Ao copiar o arquivo de volta para uma máquina linux, todos os caracteres newline foram substituídos por "^ m", o que estava causando o awk total, não encontrando nenhuma nova linha. Correção com o comando fromdos no pacote tofrodos.

Encontrei aqui ... link

    
por 24.09.2014 / 20:49