Foros del Web » Administración de Sistemas » Unix / Linux »

duda a crear un bash

Estas en el tema de duda a crear un bash en el foro de Unix / Linux en Foros del Web. hola a todos es que tengo un archivo donde tengo una info quiero poder hacer mostrar el contenido tengo esto file.txt @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código BASH: ...
  #1 (permalink)  
Antiguo 20/12/2014, 18:40
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 5 meses
Puntos: 10
duda a crear un bash

hola a todos es que tengo un archivo donde tengo una info quiero poder hacer mostrar el contenido tengo esto

file.txt

Código BASH:
Ver original
  1. http://dominio.com
  2. http://dominio.com
  3. http://dominio.com
  4. http://dominio.com
  5. http://dominio.com
  6. http://dominio.com
  7. http://dominio.com
  8. http://dominio.com
  9. http://dominio.com

genera.sh
Código BASH:
Ver original
  1. #!/bin/bash
  2. for line in $(cat file.txt); do
  3. echo "$line" ;
  4. done

y muestra el resultado linia por linia pero lo que quiero hacer es que tenga salida asi

http://dominio.com #1
http://dominio.com #2
http://dominio.com #3


asi consegutivo

Última edición por AlvaroG; 22/12/2014 a las 07:32 Razón: bash != php - arreglada etiqueta HIGHLIGHT
  #2 (permalink)  
Antiguo 22/12/2014, 07:32
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda a crear un bash

No leas archivos con for+cat. Usa while+read para eso:
Código BASH:
Ver original
  1. while read LINEA; do
  2.     echo $LINEA
  3. done < file.txt

A menos que haya entendido mal, lo que querés lo hace el programa nl


Saludos.
  #3 (permalink)  
Antiguo 24/12/2014, 13:57
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: duda a crear un bash

quiero poder leer el archivo que tiene las linias pero tambien quiero incluir el numero de linia del archivo
  #4 (permalink)  
Antiguo 26/12/2014, 07:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda a crear un bash

Entonces quizás te sirva

Código BASH:
Ver original
  1. nl archivo.txt | while read LINEA; do
  2.     ...
  3. done
  #5 (permalink)  
Antiguo 13/01/2015, 23:29
 
Fecha de Ingreso: enero-2015
Mensajes: 43
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: duda a crear un bash

test.sh
Código:
#!/bin/bash
readarray  LISTA < file.txt

for index in ${!LISTA[@]}
do
    printf "%4d: %s\n" $index ${LISTA[$index]}
done
y en el shell
Código:
german@debian:~/apps$ chmod +x test.sh 
german@debian:~/apps$ ./test.sh 
   0: http://dominio1.com
   1: http://dominio2.com
   2: http://dominioA.com
   3: http://dominioB.com
   4: http://dominioC.com
   5: http://www.dominio.com
   6: http://sub.dominio.com
   7: http://blog.dominio.com
   8: http://mail.dominio.com
si tiene que empezar en 1 se me ocurre esto
Código:
#!/bin/bash
readarray LISTA < file.txt

for index in ${!LISTA[@]}
do
    printf "%s #%d\n"  ${LISTA[$index]}  $((index+1)) 
done
shell
Código:
german@debian:~/apps$ ./test.sh 
http://dominio1.com #1
http://dominio2.com #2
http://dominioA.com #3
http://dominioB.com #4
http://dominioC.com #5
http://www.dominio.com #6
http://sub.dominio.com #7
http://blog.dominio.com #8
http://mail.dominio.com #9

Última edición por germangutierrez; 13/01/2015 a las 23:40
  #6 (permalink)  
Antiguo 14/01/2015, 06:55
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda a crear un bash

Buena solución, aunque el uso del array es innecesario, lo siguiente es equivalente:

Código BASH:
Ver original
  1. i=0
  2. while read LINEA; do
  3.     printf "%d: %s\n" $i "$LINEA"
  4.     i=$(( i + 1 ))
  5. done < archivo.txt

Etiquetas: bash
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:31.