Pular para o conteúdo
  • Denunciar
  • Indicar

1. sed

Enviado em 06/12/2007 - 14:43h

Pessoal, estou com o seguinte problema com este comando aqui em baixo:


HOSTNAME='grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/' '

o problema é o seguinte, dentro deste comando eu tenho um sed, Maaaas, a aspa simples q deveria abrir a expressão regular do sed, está na verdade fexando a do comando inteiro. e então considera q está indo até o sed e fexando, com o próximo '

se eu pudesse substituir o ' , por algum outro caractere, ele daria certo, por exemplo se fosse uma chave ai daria certo HOSTNAME={bla bla | sed 'blabla'}



bom, é isso, sugestões?



desde já agradeço.

Responder tópico

2. Re: sed

Enviado em 06/12/2007 - 15:04h

Tentou assim:

HOSTNAME=`bla bla | sed 'blabla'`

ou

HOSTNAME=$(bla bla | sed 'blabla')

3. Re: sed

Enviado em 06/12/2007 - 15:09h

tentei HOSTNAME=$(grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/')

nao deu...

4. Re: sed

Enviado em 06/12/2007 - 15:29h

Fiz um teste trocando as aspas (1a e ultima) e funcionou:

HOSTNAME=`grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/' `


Verifique se vai funcionar para você.

5. Re: sed

Enviado em 06/12/2007 - 22:50h

já tinha tentado todas estas dicas, nada de funcionar...

muito estranho...

6. Re: sed

Enviado em 07/12/2007 - 08:36h

do jeito que você está fazendo você está jogando todo esse comando pra variavel hostname :

[fabriciols@linux01 fabriciols]$ HOSTNAME='grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/' '
[fabriciols@linux01 fabriciols]$ echo $HOSTNAME
grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed s/([a-zA-Z_-]*)..*/1/


você pode fazer assim


[fabriciols@linux01 fabriciols]$ ADDR=127.0.0.1
[fabriciols@linux01 fabriciols]$ HOSTNAME=`grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/'`
[fabriciols@linux01 fabriciols]$ echo $HOSTNAME
linux01


ou

[fabriciols@linux01 fabriciols]$ HOSTNAME=$(grep $ADDR /etc/hosts | tr -s " " | cut -f2 | sed 's/\([a-zA-Z_-]*\)\..*/\1/')
[fabriciols@linux01 fabriciols]$ echo $HOSTNAME
linux01

particularmente prefiro o segundo jeito , mais legivel :)

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder