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

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

Re: [shell-script] Alterando conteudo de arquivos em massa


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Alterando conteudo de arquivos em massa
Date: Mon, 14 Jan 2008 10:01:33 -0200

William

Apesar do seu one-liner funcionar sem problemas, vc vai chamar o sed tantas
vezes quantas houverem arquivos.

Se vc passar a lista de arquivo na lista de parâmetros vc terá uma imensa
velocidade.

sed -i 's/internetExplorer/Firefox/g' *

ou, com xargs

ls | xargs sed -i 's/internetExplorer/Firefox/g'

uma terceira alternativa é imprimir o nome dos arquivos que tem a string que
vc quer via um grep (favor checar as opções)

grep -HF 'internetExplorer' * | xargs sed -i 's/internetExplorer/Firefox/g'

E, se os arquivos forem muito grandes, use

sed -i '/internetExplorer/s//Firefox/g'  # pelo menos no gsed da mais
performance.

Não sei de quantos arquivos estamos lidando nesse caso ou em outros
parecidos, mas vale a pensa pensar nesses detalhes,  do contrario a edição
scriptada pode demorar tanto que chega a ser proibitiva (principalmente se
não temos ideia de quanto ja foi editado).

On 1/14/08, William José Vicente <address@hidden> wrote:
>
> Ráyner,
>
> pode não ser a melhor forma, mas eu faria um for para cada arquivo
> desejado e usaria o sed para a substituição. Seria mais ou menos assim:
>
> for arq in *; do sed 's/internetExplorer/Fiferox/g' $arq; done
>
> No lugar do * você pode trocar por uma lista de arquivos ou um `cat
> arquivo` para obter esta lista.
>
> Abraços,
>
> William
>
> Em 14/01/08, Ráyner <address@hidden <raynercl%40yahoo.com.br>>
> escreveu:
> >
> > Há alguma maneira de se alterar o conteúdo dos
> > arquivos em grande escala? O que eu quero na verdade e
> > entrar em vários arquivos e substituindo uma palavra
> > por outra.
> >
> > Tipo:
> >
> > ls | cat |ed s/internetExplorer/Fiferox/ g
> > #isso não da certo
> >
> > Já tentei alguns comandos mas nenhum da certo.
> >
> > Obrigado
> >
> > Ráyner Carvalho
> > (61) 9137-6842
> >
> > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> > armazenamento!
> > http://br.mail.yahoo.com/
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


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



reply via email to

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