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

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

Re: [shell-script] Remover a ultima linha do arquivo


From: Flavio Junior
Subject: Re: [shell-script] Remover a ultima linha do arquivo
Date: Wed, 9 Apr 2008 14:37:14 -0300

A solução que passei anterior resolve o problema do arquivo
temporario, o que não tem como ser resolvido é o fato de abrir
o arquivo na memoria, ah não ser que escreva algo que atue diretamente
nos blocos o que eu nem faço ideia como ficaria, ou se não
corromperia o arquivo...


ACHO que isso resolve..
Ao menos já houve uma thread aqui sobre duplicação de arquivo e essa
foi (se não me engano) a unica forma de não gerar um segundo arquivo,
veja pelo inode:

lazlo:~# ls -i x
1118658 x
lazlo:~# cat x
192.168.5.239
192.168.4.197
192.168.4.169
192.168.4.145
192.168.4.163
192.168.5.246
192.168.5.254
192.168.4.161
192.168.4.194
192.168.5.216
192.168.5.233
lazlo:~# ed x <<<$'$\nd\nwq'
154
192.168.5.233
140
lazlo:~# cat x
192.168.5.239
192.168.4.197
192.168.4.169
192.168.4.145
192.168.4.163
192.168.5.246
192.168.5.254
192.168.4.161
192.168.4.194
192.168.5.216
lazlo:~# ls -i x
1118658 x
lazlo:~#

--

Flavio do Carmo Junior aka waKKu
#bash-br @ irc.freenode.net

2008/4/9 Eduardo Queiroz <address@hidden>:
>
>
>
>
>
>
>  O problema da expressão (sed -i '450000d' arquivo.txt) é que ela gera um
>  arquivo temporário dentro da partição no momento de sua execução, o que
>  acaba sendo a mesma coisa de gerar um arquivo novo.
>
>  Será que não tem outra forma?
>
>  Em 09/04/08, Roberto Alves <address@hidden> escreveu:
>  >
>  > Eu acho, IMHO, que mesmo para zerar uma linha o arquivo é aberto, em
>  > memoria, mas com esse tamanha faria swap, o que causaria problemas por
>  > falta de espaço em disco, a não ser que tenha pra swap.
>  > Estou errado?
>  > Fiquei em dúvida se consegue remover uma linha desse arquivo gigantesco.
>  >
>  > Roberto Alves
>  >
>  > 2008/4/9 Édnei Rodrigues
> <address@hidden<ednei.felipe.rodrigues%40gmail.com>
>  > >:
>  > > Você fala do que eu fiz?
>  > >
>  > > Em 09/04/08, André Saunite <address@hidden <saunite%40gmail.com>>
>  > escreveu:
>  > >
>  > > >
>  > > > Cara,
>  > > >
>  > > > Nunca redirecione a saída de um arquivo para o próprio arquivo, o
>  > shell
>  > > > "zera" o arquivo de saída antes de processar o comando, olha só:
>  > > >
>  > > > $ *cat a*
>  > > > 1
>  > > > 2
>  > > > 3
>  > > > 4
>  > > > $ *cat a | sed 's/4d/ /' >
>  > > > *$ *cat a*
>  > > > $
>  > > >
>  > > > Você pode usar assim se tiver usando o GNU sed:
>  > > >
>  > > > $ *sed -i '$d' a*
>  > > > $ *cat a*
>  > > > 1
>  > > > 2
>  > > > 3
>  > > >
>  > > > Abs,
>  > > > André Saunite
>  > > >
>  > > > [As partes desta mensagem que não continham texto foram removidas]
>  > > >
>  > > >
>  > > >
>  > >
>  > > [As partes desta mensagem que não continham texto foram removidas]
>  > >
>  > >
>  >
>  >
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>  


reply via email to

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