Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/02/2014, 20:04
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: script extraer lineas de un fichero y mostrarlas

HackID1:
Evita leer archivos con la construcción "for linea in `cat ...`". Si hay algún espacio en el archivo, tus resultados no serán los esperados. Una forma más segura de leer un archivo línea a línea es
Código BASH:
Ver original
  1. while read LINEA; do
  2. ...
  3. done < datos.txt

Solo por diversión, te muestro un par de alternativas a tu script, quizás te sirvan para casos más complejos:

Código BASH:
Ver original
  1. sed 's/^\(.*\):\(.*\)$/\1 tiene \2 años/g' datos.txt # capturar todo hasta el primer : y todo hasta el final, reemplazar
Código BASH:
Ver original
  1. awk -F: '{ print $1 " tiene " $2 " años"}' datos.txt # la misma dinámica que 'cut' pero con varios campos a la vez
Código BASH:
Ver original
  1. echo ${LINEA%*:} tiene ${LINEA#:*} años # con la LINEA cargada en el bucle
Código BASH:
Ver original
  1. PARTES=( $(echo $LINEA| tr : " ") ) # usa ${PARTES[0]} y ${PARTES[1]}
Código BASH:
Ver original
  1. set -- $(echo $LINEA | tr : " ") # usa $1 y $2