[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Barra invertida - QUE RAIO
From: |
Rodolfo Villanova |
Subject: |
RES: [shell-script] Barra invertida - QUE RAIO |
Date: |
Tue, 17 Jun 2003 16:22:15 -0300 |
He, he!
Não sei como é no Bash, mas nos ambiente Korn Shell do True64 e de SunOs não
"funfou" direito:
$ dir_usr=$(echo '/home/meudir/teste/' | sed 's/\//\\/g')
$ echo $dir_usr
\home\meudir este\
Ele interpretou o "\t" do diretório "\teste" com se fosse uma tabulação ("\t")!
Ainda não sei quase nada de sed (ainda estou fazendo um monte de besteira), por
isso faço minhas experiências malucas.
Acrescentei uma "escapada" no diretório que começa com a letra "t", e daí
"funfou"!
Eu faria um sed pra pesquisar o string de entrada e, caso encontrasse algum
caracter que seja possível ser interpretado não intencionalmente pelo shell
("\t", "\n", "\c"), incluiria um "back slash" ("\") antes do "slash" ("/")
anterior a uma dessas letras (t,n,c).
$ dir_usr=$(echo "/home/meudir\/teste/" | sed 's/\//\\/g')
$ echo $dir_usr
\home\meudir\teste\
Deixo a cargo de nossos mestres nalista montar a instrução sed pra fazer isso,
se eles dispuserem de tempo.
Grato,
Rodolfo Villanova
-----Mensagem original-----
De: Frederico Argolo [mailto:address@hidden]
Enviada em: terça-feira, 17 de junho de 2003 15:47
Para: address@hidden
Assunto: Re: [shell-script] Barra invertida - QUE RAIO
Alexandre, o seu comando esta correto
Agora sinceramente nao sei pq nao esta funcionando,
mas dei uma testada, faz assim q funciona:
dir_usr=$(echo '/home/meudir/teste/' | sed 's/\//\\/g')
[]'s
Frederico Argolo
--- Mateus Caruccio <address@hidden>
escreveu: >
> opa,
>
> use outro caracgtere separador, como uma virgula:
>
> sed -e 's,\,/,'
>
> Mateus
>
> ----- Original Message -----
> From: "Alexander F. Fernandes - Esc. EDEM"
> <address@hidden>
> Date: Tue, 17 Jun 2003 13:46:14 +0000
> To: address@hidden
> Subject: [shell-script] Barra invertida - QUE RAIO
>
> > Olá!
> >
> > Estou tentando substituir as barras de um caminho
> de diretório por barras
> > invertidas.
> >
> > No prompt do bash eu consigo sem problemas com:
> >
> > # echo "/home/meudir/teste/" | sed 's/\//\\/g'
> >
> > Mas em um script não dá certo.
> >
> > A linha do script está assim:
> >
> > dir_usr=`echo '/home/meudir/teste/' | sed
> 's/\//\\/g'`
> >
> > Mas não funciona.
> >
> > Já tentei colocar os endereços em aspas duplas,
> simples, etc, e nada feito.
> >
> > O mais engraçado(nem tanto, aliás, não tem graça
> nenhuma) é que o sed
> > reconhece a barra "escapada", mas não reconhece a
> barra invertida.
> >
> > Alguém pode dar alguma sugestão?
> >
> > []'s
> > Alexander