Em sed vc tem estas possibilidades:

 # imprime somente as linhas que se encaixam na expressão regular
 # (emula o "grep")
 sed -n '/regexp/p'           # método 1
 sed '/regexp/!d'             # método 2

 # imprime somente as linhas que NÃO se encaixam na regexp (emula o "grep -v")
 sed -n '/regexp/!p'          # método 1, corresponde ao descrito acima
 sed '/regexp/d'              # método 2, sintaxe mais simples

entretanto, se vc quer uma ER que case com tudo MENOS uma dada
expressão, acho que isso não é suportado pelas ERs normais. Ate por
que vc pode inverter a lógica do seu programa para isso.

On 12/6/06, Wagner Brasileiro <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Gerei um arquivo com a listagem de vários subdiretórios onde tenho arquivos 
> MP3 gravados, depois de ter tirado linhas com caracteres do tipo: ".", 
> "..""./" e coisas do tipo ainda haviam linhas como: linhas em branco e outros 
> nomes de diretórios ao qual não queria que houvessem pois precisarei numerar 
> essas linhas e somente as que forem referentes a arquivos para que não fique 
> discrepante a listagem. A seguinte ER abaixo aparentemente funcionou: sed 
> '/[mM][pP][3]/!d' arq_origem>arq_destino, porém gostaria de saber como faria 
> para negar a expressão e não o comando de deletar, já tentei: sed 
> '/(^[mM][pP][3])/!d' arq_origem>arq_destino, sed '/[^mM][pP][3]/!d' 
> arq_origem>arq_destino e ainda numa tentativa já meia desesperada: sed 
> '/[^mM][^pP][^3]/!d' arq_origem>arq_destino e simplesmente nada acontecia. 
> Gostaria de saber como faço para negar uma ER inteira, alguém pode me 
> explicar?
>
>  Obrigado
>
>               
>  ---------------------------------
>   Yahoo! Search
>   Música para ver e ouvir: You're Beautiful, do James Blunt
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>                    



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer

Responder a