[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Alterar conteúdo do arquivo direcionando para o mesmo
From: |
Arthur M. Meskelis |
Subject: |
Re: [shell-script] Alterar conteúdo do arquivo direcionando para o mesmo arquivo |
Date: |
Fri, 7 May 2010 17:57:36 -0300 |
se você não tiver memória suficiente para alocar a saída do primeiro cat,
não dará certo
não funciona em todos os casos
Em 7 de maio de 2010 17:48, Arkanon <address@hidden> escreveu:
>
>
> Oi de novo.
>
> Não sei se ja rolou alguma conversa sobre exatamente isso aqui. De
> qualquer forma, eh uma aplicacao de uma caracteristica do bash que eu
> acho q vale a pena ser referenciada e, eventualmente, discutida. Eh
> mais uma forma de transformar dois comandos num so.
>
> <http://www.dicas-l.com.br/dicas-l/20050222.php>
>
> A dica do Júlio do uso de process substitution (uma aplicacao
> implicita de named pipes) pode simplificar um pouco o processo :-p de
> alterar o conteúdo de um arquivo quando se deseja que o mesmo arquivo
> receba o conteudo alterado.
>
> Vira e meche temos um arquivo assim:
>
> $ echo -e "batata\nlaranja\nbanana" >| frutas
> $ cat frutas
> batata
> laranja
> banana
> $
>
> Querendo tirar laranjas do arquivo acima :-p e fazendo assim:
>
> $ echo -e "batata\nlaranja\nbanana" >| frutas
> $ cat frutas | grep -v laranja >| frutas
> $ cat frutas
> $
>
> acabamos com um arquivo vazio. Normalmente, entao, fazemos assim:
>
> $ echo -e "batata\nlaranja\nbanana" >| frutas
> $ cat frutas | grep -v laranja >| frutas-tmp
> $ mv frutas-tmp frutas
> $ cat frutas
> batata
> banana
> $
>
> Nao eh o fim do mundo ter que usar esse passo intermediario (mv), e
> sob varios aspectos talvez seja ate recomendavel, mas podemos pular o
> mv fazendo assim:
>
> $ echo -e "batata\nlaranja\nbanana" >| frutas
> $ cat <(cat frutas | grep -v laranja) >| frutas
> $ cat frutas
> batata
> banana
> $
>
> cat <[]'s :-p
>
> --
> (o_ ------------------ __o
> //\ address@hidden <arkanon%40lsd.org.br> _`\<,
> V_/_ --- www.lsd.org.br (_)/(_)
> ---------------------------------
>
>
--
------------------------------------------
1. Notebook para você ficar livre e programar a vontade: R$ 2300
2. Curso de Programação/SysAdmin/DBA: R$ 5000
3. Pedir a solução pronta para um problema numa lista de discussão: Não tem
preço !
E para todas as outras existe RTFM, STFW e LMGTFY
[As partes desta mensagem que não continham texto foram removidas]