BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

No se sustituye este texto de ninguna manera...

BocaDePez
BocaDePez

Hola otra vez.

Ya me enseñaron a sustituir caracteres de archivos de texto anteriormente desde línea de comandos (gracias, usuarios de BandaAncha), pero estoy probando con el siguiente texto y no me funciona nada:

yfrog.com/?url=http://img163.imageshack. … 10009400.jpg

Quisiera, desde línea de comandos, eliminar el texto "imageshack.com". He probado con sed, awk y perl, y los tres me indican algo así como que hay caracteres incompatibles o especiales y no realizan el cambio. Desde luego, con gedit (Gnome) sí se consigue.

¿Existe la manera?

Gracias. Salud.

BocaDePez
BocaDePez

Disculpe, pero no entiendo...

BocaDePez
BocaDePez

Bueno. Al final por otro sitio hemos encontrado el problema: al utilizar en sed como separador "/" ,cuando en el texto a filtrar también se encuentra ese carácter, hace que dé error. He cambiado ese separador por "#" y ya funciona:

usuario@usuario-desktop:~/Imágenes$ echo yfrog.com/?url=http://img163.ima
geshack.us/img163/8609/16012010009400.jpg |sed s#imageshack.com##
(link roto)
usuario@usuario-desktop:~/Imágenes$

Salud.

🗨️ 1
Pridebowl

Creo que no entiendo la resolucion:

echo / | sed 's/#/funciona/'

echo / | sed 's/\//funciona/'

Un saludo!

xavisuper
1

En ese texto seguramente haya caracteres que sed, awk, perl, grep y otros consideran caracteres especiales (son sospechosos /, ?, =, :, . ). Estos caracteres tienen habitualmente una función asociada. Cuando el texto que quieres buscar contiene alguno de estos caracteres surge el problema. La solución habitual consiste en anteponer el caracter \ antes del carácter problemático.

De todos modos permíteme que te diga que éso lo habrías averigüado muy rápidamente si hubieses tirado de ayuda (man grep, man awk...) que es lo que hemos hecho todos antes de que existiese Google e incluso antes de que existiese Internet, y algunos seguimos haciéndolo. ;)

No dejes de investigar. :)