Manipular string com caracteres especiais (espaços e acentos)

1. Manipular string com caracteres especiais (espaços e acentos)

Rodrigo Miguel
rodmig

(usa Ubuntu)

Enviado em 14/04/2011 - 11:52h

Preciso que isto:

miguel@debian:~$ xclip -out -selection clipboard
file:///home/miguel/%C3%81rea%20de%20Trabalho/teste.txt

Torne-se isto:

miguel@debian:~$ xclip -out -selection clipboard
file:///home/miguel/Área\ de\ Trabalho/teste.txt

Ou seja, que a saída do comando "xclip -out -selection clipboard" não troque acentos e espaços por "caracteres especiais".

Sei que é possível fazer isto com o sed.

Mas eu gostaria de algo que fosse bem genérico, já prevendo que o nome do arquivo possa conter espaços e diferentes acentos, já que o nome do arquivo copiado para o clipboard pode variar bastante.

Espero ter sido claro :)



  


2. Re: Manipular string com caracteres especiais (espaços e acentos)

Rodrigo Miguel
rodmig

(usa Ubuntu)

Enviado em 14/04/2011 - 13:55h

Acabo de descobrir que não tem nada a ver com o xclip. É problema do XFCE...

No GNOME o saída do comando é normal. No XFCE, truncada...


3. Re: Manipular string com caracteres especiais (espaços e acentos)

Rodrigo Miguel
rodmig

(usa Ubuntu)

Enviado em 14/04/2011 - 22:45h

Era isso que eu estava tentando fazer: http://linuxlike.blogspot.com/2011/04/xfce-como-colar-um-arquivo-na-area-de.html

O grande problema é que o conteúdo do clipboard vem truncado. Isso atrapalha tudo. A causa parece ser o próprio Thunar, já que no Nautilus isso não ocorre.

Postei o melhor resultado que consegui. Se alguém aqui manja de shell script e quiser ajudar a melhorar a dica, fique a vontade.


4. Re: Manipular string com caracteres especiais (espaços e acentos)

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 15/04/2011 - 08:38h

É disso que você precisa: http://www.shelldorado.com/scripts/cmds/urldecode

Ex.:

$ echo "file:///home/miguel/%C3%81rea%20de%20Trabalho/teste.txt" | sh urldecode
file:///home/miguel/Área de Trabalho/teste.txt


5. RE: SMarcell

Rodrigo Miguel
rodmig

(usa Ubuntu)

Enviado em 15/04/2011 - 11:16h

Sua dica foi perfeita!

Mas ainda estou enfrentando um problema;

miguel@debian:~$ clip=$(xsel -b | ./urldecoder.sh); clip=${clip#*//}; cp `echo $clip | sed ':a;$!N;s/\\r//g;ta; s/ /\\ /g'` /home/miguel/Desktop/
cp: impossível obter estado de "/home/miguel/teste": Arquivo ou diretório não encontrado
cp: impossível obter estado de "3": Arquivo ou diretório não encontrado

Percebam que o caminho para o arquivo aparece corretamente, mas dá erro na hora de copiar:

miguel@debian:~$ clip=$(xsel -b | ./urldecoder.sh); clip=${clip#*//}; echo $clip | sed ':a;$!N;s/\\r//g;ta; s/ /\\ /g'
/home/miguel/teste\ 3
miguel@debian:~$ clip=$(xsel -b | ./urldecoder.sh); clip=${clip#*//}; cp `echo $clip | sed ':a;$!N;s/\\r//g;ta; s/ /\\ /g'` /home/miguel/Desktop/
cp: impossível obter estado de "/home/miguel/teste": Arquivo ou diretório não encontrado
cp: impossível obter estado de "3": Arquivo ou diretório não encontrado

Ou seja, não estou conseguindo lidar com nome de arquivo que contem espaço.

Com certeza estou errando em algum detalhe...

Sugestões? :)




6. Re: Manipular string com caracteres especiais (espaços e acentos)

Rodrigo Miguel
rodmig

(usa Ubuntu)

Enviado em 04/05/2011 - 22:44h

Consegui resolver o problema com os espaços...

Com esta dica, você pode colar uma pasta ou um arquivo no Desktop do Xfce:

http://linuxlike.blogspot.com/2011/04/xfce-como-colar-um-arquivo-na-area-de.html

Quando é que os desenvolvedores do Xfce vão dar um jeito nisso, heim?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts