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
