Cara usa

sed -i "/^$/d" arquivo

Funciona..
Até..


Flavio Junior wrote:
> Realmente Angelo..
>
> O que voce disse é verdade, essa porcaria sempre remove a ultima linha.. :)
>
> Eu resolvi assim:
>
> $ sed '${/^$/d}' txt
>
> Fazendo um bloco...
> testa ai
>
> --
>
> Flávio do Carmo Junior
>
> 2008/2/20 Angelo Fausti Neto <[EMAIL PROTECTED]>:
>
>   
>>   Oi Flavio,
>>
>> sim, eu entendi a proposta, mas quando tento usar
>>
>> sed -i '$,/^$/d' txt
>>
>> ele remove a ultima linha, seja ela uma linha em branco ou nao.
>>
>> por favor, faça o seguinte teste e veja se reproduz o que estou dizendo.
>>
>>     
>>> cat txt
>>>       
>> a
>> b
>> b
>> b
>>
>> c
>> c
>>
>> d
>> d
>>     
>>> sed -i '$,/^$/d' txt
>>> cat txt
>>>       
>> a
>> b
>> b
>> b
>>
>> c
>> c
>>
>> d
>>     
>> Abraço.
>>
>> 2008/2/20 Flavio Junior <[EMAIL PROTECTED] <billpp%40gmail.com>>:
>>
>>     
>>> Oi Angelo..
>>>
>>> Eu realmente mandei remover somente a ULTIMA linha, caso ela fosse em
>>> branco..
>>>
>>> Eu tava só "resumindo" a resposta do nosso amigo da lista..
>>> Qdo ele disse:
>>>
>>>
>>>       
>>>>>> Primeiro tens que testar se a ultima linha esta em branco, podes
>>>>>>             
>>> usar
>>>       
>>>>>> tail -1 txt | grep '^$'
>>>>>>
>>>>>> e depois disso deletar a ultima linha
>>>>>>
>>>>>> sed '$d' txt
>>>>>>
>>>>>> o comando completo fica
>>>>>>
>>>>>> tail -1 txt | grep '^$' && sed '$d' txt
>>>>>>             
>>> Eu disse:
>>>
>>>       
>>>>> Da pra por tudo no sed
>>>>>
>>>>> $ sed -i '$,/^$/d' txt
>>>>>           
>>> Ou seja, esse sed foi realmente só para remover a ultima linha...
>>> E o que ta fazendo isso é aquele primeiro $ ali.. Que pro sed diz
>>>       
>> "ultima
>>     
>>> linha"
>>>
>>> Ou seja:
>>> $ -> vai pra ultima linha
>>> , -> proxima instrução
>>> /^$/ -> Localiza uma linha vazia (^ = inicio de linha BOL, $ = termino
>>>       
>> de
>>     
>>> linha EOL)
>>> d -> apaga a linha toda se encontrar
>>>
>>> Espero ter sido claro
>>>
>>> --
>>>
>>> Flávio do Carmo Junior
>>>
>>> 2008/2/20 Leonardo Neves <[EMAIL PROTECTED]<leonardo.neves%40gmail.com>
>>>       
>> <leonardo.neves%40gmail.com>
>>     
>>>> :
>>>>         
>>>> Angelo,
>>>>
>>>> tente isso:
>>>>
>>>> egrep -v "^$" txt
>>>>
>>>> Atenciosamente,
>>>> --
>>>> Leonardo Neves Bernardo
>>>> Analista de Suporte Unix/Linux
>>>> LPIC-III Mixed Environment - www.lpi.org
>>>>
>>>> Em 20/02/08, Angelo Fausti Neto <[EMAIL 
>>>> PROTECTED]<angelofausti%40gmail.com>
>>>>         
>> <angelofausti%40gmail.com>
>>     
>>> <angelofausti%40gmail.com>>
>>>
>>>       
>>>> escreveu:
>>>>
>>>>         
>>>>> Oi Flavio,
>>>>>
>>>>> beleza?
>>>>>
>>>>> testei essa solução mas nao funcionou, ela sempre remove a ultima
>>>>>           
>>>> linha...
>>>>         
>>>>> por algum motivo nao esta avaliando a expressao regular.
>>>>>
>>>>> abraços,
>>>>>
>>>>> Angelo.
>>>>>           
>>>>>> cat txt
>>>>>>             
>>>>> a
>>>>> b
>>>>> b
>>>>> b
>>>>>
>>>>> c
>>>>> c
>>>>>
>>>>> d
>>>>> d
>>>>>           
>>>>>> sed -i '$,/^$/d' txt
>>>>>> cat txt
>>>>>>             
>>>>> a
>>>>> b
>>>>> b
>>>>> b
>>>>>
>>>>> c
>>>>> c
>>>>>
>>>>> d
>>>>>           
>>>>> 2008/2/20 Flavio Junior <[EMAIL PROTECTED] 
>>>>> <billpp%40gmail.com><billpp%40gmail.com><billpp%40gmail.com><billpp%40gmail.com>>:
>>>>>
>>>>>           
>>>>>> Da pra por tudo no sed
>>>>>>
>>>>>> $ sed -i '$,/^$/d' txt
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Flavio do Carmo Junior
>>>>>>
>>>>>> 2008/2/20 Angelo Fausti Neto <[EMAIL PROTECTED]<angelofausti%40gmail.com>
>>>>>>             
>> <angelofausti%40gmail.com>
>>     
>>> <angelofausti%40gmail.com>
>>>       
>>>> <angelofausti%40gmail.com>
>>>>         
>>>>> <angelofausti%40gmail.com>
>>>>>           
>>>>>>> :
>>>>>>>               
>>>>>>             
>>>>>>> Voltando a pergunta do nosso colega:
>>>>>>>
>>>>>>> Primeiro tens que testar se a ultima linha esta em branco, podes
>>>>>>>               
>>>> usar
>>>>         
>>>>>>> tail -1 txt | grep '^$'
>>>>>>>
>>>>>>> e depois disso deletar a ultima linha
>>>>>>>
>>>>>>> sed '$d' txt
>>>>>>>
>>>>>>> o comando completo fica
>>>>>>>
>>>>>>> tail -1 txt | grep '^$' && sed '$d' txt
>>>>>>>
>>>>>>> []'s
>>>>>>> Angelo.
>>>>>>>
>>>>>>> 2008/2/19 linko_k <[EMAIL PROTECTED] 
>>>>>>> <linko_k%40yahoo.com.br><linko_k%40yahoo.com.br><linko_k%40yahoo.com.br><linko_k%40yahoo.com.br><linko_k%40yahoo.com.br><linko_k%40yahoo.com.br>>:
>>>>>>>
>>>>>>>               
>>>>>>>> Boa Noite,
>>>>>>>> Como faço para delatar a ultima linha de um arquivo caso a
>>>>>>>>                 
>> mesma
>>     
>>>>>>>> estiver em branco ?
>>>>>>>>
>>>>>>>> no aguardo
>>>>>>>> Obrigado
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> --
>>>>>>> -- Angelo Fausti
>>>>>>>
>>>>>>> [As partes desta mensagem que não continham texto foram
>>>>>>>               
>> removidas]
>>     
>>>>>>>
>>>>>>>               
>>>>>> [As partes desta mensagem que não continham texto foram removidas]
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> --
>>>>> -- Angelo Fausti
>>>>>
>>>>> [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]
>>>
>>>
>>>
>>>       
>> --
>> -- Angelo Fausti
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>>     
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>   


-- 
Leandro Ferreira
Setor de Informática
IQ - Unicamp

Responder a