shell-script-pt
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]