[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RES: [shell-script] Retornar toda linha - SED
From: |
marcio |
Subject: |
Re: RES: [shell-script] Retornar toda linha - SED |
Date: |
Sun, 11 Apr 2004 11:04:08 -0300 |
> | -----Mensagem original-----
> | De: André Luiz Alves da Silva Prates [mailto:address@hidden]
> | Enviada em: quarta-feira, 7 de abril de 2004 14:11
> | Para: address@hidden
> | Cc: address@hidden
> | Assunto: [shell-script] Retornar toda linha - SED
> |
> |
> | Caros colegas,
> |
> |
> | Estou precisando buscar em um arquivo texto(conf) os
> | endereços de email que preciso. Quero informar a palavra
> | inicio da linha e ter como resposta, tudo que estiver após
> | nesta mesma linha.
> |
> | Arquivo conf:
> | email_TESTE address@hidden address@hidden
> | address@hidden address@hidden
> | address@hidden address@hidden
> | email_PRODUCAO address@hidden address@hidden
> |
> | Existe uma forma pelo awk:
> | EMAIL_DEST=`awk ' / email_TESTE/ {print $2,$3,$4,$5,$6,$7} '
> | $HOME/CONF.conf
> |
> | Mas estou precisando de uma solução que eu precisasse mostrar
> | somente o início da linha, por exemplo: "email_TESTE", e o
> | script me retornasse toda a linha restante.
> |
> | Exemplo:
> | > comando / email_TESTE/
> | address@hidden address@hidden
> | address@hidden address@hidden
> | address@hidden address@hidden
> |
Oi André,
Tente isso:
$ sed -n '/^email_TESTE/,/^email_PRODUCAO/{
> s/email_TESTE//
> s/email_PRODUCAO//
> p
> }' arquivocommails.txt
... isso irá produzir uma saída igual a do exemplo mencionado acima.
AH!, no awk o mesmo efeito é produzido desta forma:
$ awk '/^email_TESTE/,/^email_PRODUCAO/{
> sub("email_TESTE", "")
> sub("email_PRODUCAO", "")
> print
> }' arquivocommails.txt
[ ]'s
------
////
( O O )
=======oOO==(_)==OOo============
Márcio Alexandre S. Mendonça
address@hidden
Linux User #298595
.oooO Oooo.
======( )===( )=============
\ ( ) /
\_) (_/