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: