[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tema Bash (cadenas)



Jordi Pina wrote:

> Buenas,
> 
> aunque la lista sea de Debian supongo que no es off-topic una preguntilla
> sobre bash ;)
> 
> Bien, vamos al tema.
> 
> Tengo un archivo que dice:
> 
> pinux.info:Sóc en Carles Pina i Estany
> catux.org:bla
> 
> Y necesito leerlo y poner en una variable lo que hay delante de ":"
> (pinux.info y catux.org), uno debajo de otro.
> 
> Lo he "conseguido" haciendo:
> 
> function web {
>         for cadena in $( cat web.txt ); do
>                 # ABANS
>                 cadenaabans=`echo "$cadena" | cut -d: -s -f1`
>                 echo $cadenaabans
> done
> 
> Pero me muestra:
> pinux.info
> 
> 
> 
> 
> 
> catux.org
> 
> En lugar de:
> pinux.info
> catux.org
> 
> Los espacios que hay en medio son las palabras que habrian (Sóc en Carles
> Pina i Estany), que he hecho que no se pinten pasando el parámetro -s al
> cut, pero aún y no pintarse dejan los espacios, que es lo que me
> molesta...

Esos espacios son porque cada palabra cuenta como un item distinto, asi que
ejecutaras el cut.. para cada palabra (vale decir pinux.info:Soc, en,
carles...). 

> 
> En fin, si alguien me puede decir como conseguir dejar en una variable lo
> de antes de los : sin saltos de línea le estaría muy agradecido :D

Se me ocurre lo siguiente (no es lo mas elegante, pero funciona):

cat archivo | awk '{ print $1 }' | sed -e 's/:.*//'


> Un saludo y gracias!

De que

-- 

Felipe Sateler



Reply to: