[eside-ghost] dudilla en script

Ramón Echávarri ramandi en teleline.es
Vie Feb 20 09:18:58 CET 2004


Hola,

>Ok asi que [.] es lo mismo que poner \. No?
En este caso concreto sí, aunque son cosas distintas:
La barra invertida sirve para escapar varios caracteres con significado
especial.  P.ej: \.  \*  \[
Los corchetes definen una clase de caracteres. [abc1-4]  daría una
coincidencia si encuentra 1 carácter que sea a,b,c ó un número del 1 al 4.
Si añades ^ al principio de la clase  [^abc1-4] , coincidirá con 1 carácter
que no sea ninguno de los indicados.  Dentro de una clase, muchos caracteres
especiales pierden sus características, por eso [.] es un punto, y no
cualquier carácter.

>Por cierto no faltaria g
>alfinal para que lo haga con todos los coincidentes? Y no solo con el
>primero?
Creo que sed coge la entrada línea por línea, y como en cada línea sólo hay
un final de línea, no necesitas seguir buscando.

> De todas maneras tu scrip asi parece mas sencillo que el de
>Pablo, bueno parece que da el mismo resultado no?
Esa es la intención :-).  De todas formas, el script de Pablo, con
referencias a las distintas partes que hayas capturado, puede llegar a darte
muchísima más flexibilidad.  El mío es más concreto para éste caso.

>Muchas gracias por resolver las dudillas no conocia este programa parace
>muy util para tratar textos supongo que se podria utilizar para
>renombrar ficheros por ejemplo no?
Pues no soy ningún experto en linux, pero lo que me gusta de él es que
echándole un poco de imaginación puedes hacer todo lo que quieras de mil
formas distintas, así que yo diría (totalmente a ciegas) que sí.
De todas formas ten en cuenta que el patrón que se usa en sed es una
expresión regular, y puedes usarlas con muchas otras herramientas (con
pequeños cambios).  Se me ocurren awk, egrep, perl, php...

Un saludo,
Ramón

PD:  ¿A quién tengo que pedir que me cambie la cuenta de correo registrada
en la lista?  Me temo que timofónica rechaza la mitad de mis mensajes.

-----Mensaje original-----
De: eside-ghost-bounces en deusto.es [mailto:eside-ghost-bounces en deusto.es]
En nombre de Ramón Echávarri Escribano
Enviado el: viernes, 20 de febrero de 2004 0:57
Para: Lista de eside-ghost
Asunto: Re: [eside-ghost] dudilla en script


Aupa,

sed -e 's/\.[^.]*$//'


\. es el carácter punto.  Va escapado para que no sea cualquier
carácter. [^.]  es cualquier carácter que no sea un punto (aquí no hace
falta escaparlo porque va dentro de la clase). Por tanto:
[^.]*  son cualquier número de caracteres seguidos que no sean puntos
(de 0 a muchos :-)). $ final de línea. Creo que el sed procesa línea a
línea, así que no hay problema con que se coma los saltos de línea.
Resumiendo, que busca un punto seguido de cualquier número de caracteres
que no sean puntos, seguido de fin de línea, y se lo carga (lo sustituye
por nada).

Habría que complicarlo un poquito si quisieras eliminar varios puntos
seguidos antes del último campo y cosas así.

Sí, ya sé que soy un chapas y con la cuarta parte de explicación lo
habrías entendido de sobra, pero no puedo evitarlo... 8P.

Ramón

----- Original Message -----
From: "David Rodriguez Torrontegui" <dajon en euskalnet.net>
To: "'Lista de eside-ghost'" <eside-ghost en deusto.es>
Sent: Thursday, February 19, 2004 9:04 PM
Subject: RE: [eside-ghost] dudilla en script


Aupa

El de Pablo lo he medio entendido pero el tuyo me podrías comentar que
haría?

Gracias, saludos y perdon x la chapa xo me intrigado mucho que significa
esa especie de geroglifico jejeje

-----Mensaje original-----
De: eside-ghost-bounces en deusto.es [mailto:eside-ghost-bounces en deusto.es]
En nombre de Ramón Echávarri
Enviado el: jueves, 19 de febrero de 2004 12:58
Para: Lista de eside-ghost
Asunto: Re: [eside-ghost] dudilla en script


Hola,

no estoy muy seguro de que sirva para todos los casos (habría que
comprobarlo para los datos en cuestión), pero yo lo habría hecho muy
parecido a lo que has hecho:

sed -e 's/\.[^.]*$//'

Ramón

----- Original Message -----
From: "Ender" <eduvedder en terra.es>
To: <eside-ghost en deusto.es>
Sent: Thursday, February 19, 2004 11:57 AM
Subject: [eside-ghost] dudilla en script


Aupa, hoy tengo yo una pequeña duda sobre como conseguir algo con un
comando. Estoy casi seguro de que es sencillo y se puede, a ver si a
alguien se le ocurre.

El problema es: teniendo algo como esto....
hola.adios
casa.perro.gato
eghost.friki
aktor.farsante.;).jeje

Quiero quitar el ultimo campo (separando por .) a todas las lineas y
obtener:
hola
casa.perro
eghost
aktor.farsante.;)

Mi idea es conseguirlo con el cut pero no consigo referenciar el ultimo
campo ni hacer una negación de una selección... (en man cut no he
encontrao
nada)
De awk no controlo casi, asi que si me dais una sentencia que lo haga
guay. sé que $NF tiene el ultimo campo.... asi que un print $1-$($NF-1)
o algo asi seria bonito...

Venga proponed cosas originales y ofuscadas :)

PD el problema original lo he resuelto ya que todos los ultimos campos
eran iguales, y he hecho un sed 's/\.valor$//g' pero claro, me ha
quedado el gusanillo de como hacerlo si el ultimo campo fuera variable.


_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://ssl.deusto.es/cgi-bin/mailman/listinfo/eside-ghost

_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://ssl.deusto.es/cgi-bin/mailman/listinfo/eside-ghost


_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://ssl.deusto.es/cgi-bin/mailman/listinfo/eside-ghost

_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://ssl.deusto.es/cgi-bin/mailman/listinfo/eside-ghost


_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://ssl.deusto.es/cgi-bin/mailman/listinfo/eside-ghost