shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Remoção de um bloco de texto de um arquivo


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Remoção de um bloco de texto de um arquivo
Date: Mon, 5 Jan 2009 16:37:30 -0200

2009/1/5 Renato de Oliveira Diogo <address@hidden>

> Olá pessoal
>
> então, diretamente com o sed eu não sei trabalhar...
>
> Agora desenvolvi um laco em que eu pego as linhas de inicio e fim do
> bloco, aí com o sed ficaria mais facil.... vejam abaixo:
>
> ===
> COUNT=0;
> MARK=0;
>
> while read L;
> do
>        let COUNT++;
>        if [ "$L" == '<VirtualHost *:80>' ];
>        then
>                LI=$COUNT;
>        elif [ "$L" == '</VirtualHost>' -a "$MARK" == 1 ];
>        then
>                LF=$COUNT;
>                break;
>        elif [ "$L" == "ServerName subdominio.dominio.com.br" ];
>        then
>                MARK=1;
>        fi
> done < teste.txt
> ===
>
> Agora tenho duas variáveis: LI que tem o número da linha onde inicia o
> bloco; LF que tem o número da linha onde termina o bloco.
>
> Com isto bastaria dar
> ===
> if [ $MARK == 1 ]
> then
>    sed -i '$LI,$LFd' texte.txt
> fi
> ===
>
> Agora o problema é que como a string está fechada com aspas simples, o
> shell não está convertendo a variável para o número. Como eu
> resolveria isso?
>
>
Renato,

A sua solução serve como exercício e deve ter sua utilidade, mas a forma
mais fácil é utilizando o sed puro.

<MODERACAO>
Você tentou utilizar a solução do Marlon? Ela não funciona, mas já seria uma
forma legal de você dar valor à atenção que ele te deu ao responder. Você
mostra o erro e como tentou resolver. Ele te retorna. Isto é saudável pra
lista...
</MODERACAO>

Uma solução simples com o sed é (corrigindo a solução do Marlon):

sed '/VirtualHost \*:80>/,/\/VirtualHost>/d' arquivo

Observe que isto não irá alterar o arquivo, mas irá jogar na saída padrão o
conteúdo do arquivo sem as linhas que você quer remover.

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]