sed

1. sed

Diego Gadens
Haskell

(usa Ubuntu)

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.


  


2. Re: sed

Sandro Marcell
SMarcell

(usa Slackware)

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

Tentou assim:

HOSTNAME=`bla bla | sed 'blabla'`

ou

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


3. Re: sed

Diego Gadens
Haskell

(usa Ubuntu)

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

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

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

Diego Gadens
Haskell

(usa Ubuntu)

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

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

muito estranho...


6. Re: sed

Fabricio Lopes de Souza
fabricio_

(usa Gentoo)

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 :)







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts