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