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

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

Alterar conteúdo do arquivo direcionando para o mesmo arquivo


From: Arkanon
Subject: Alterar conteúdo do arquivo direcionando para o mesmo arquivo
Date: Fri, 7 May 2010 17:48:32 -0300

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   _`\<,
V_/_  --- www.lsd.org.br  (_)/(_)
---------------------------------


reply via email to

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