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

shell operador de sustitucion

Estas en el tema de shell operador de sustitucion en el foro de Unix / Linux en Foros del Web. amigos necesito extraer parte de un string. mira esta es la cosa: arc='ls *.txt' for ficheros in $arc do #por lo leido.... nom=${$ficheros,2,5} echo $nom ...
  #1 (permalink)  
Antiguo 15/02/2007, 07:17
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo shell operador de sustitucion

amigos necesito extraer parte de un string. mira esta es la cosa:

arc='ls *.txt'
for ficheros in $arc
do
#por lo leido....
nom=${$ficheros,2,5}
echo $nom
done


con nom=${$ficheros,2,5} pretendo extraer desde $ficheros el caracer desde la posicion 2 cinco caracteres. me envia

./mostrar1.sh: ${$ficheros,2,5}: bad substitucion


Muchas gracias por responder.
Atte
MG
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 15/02/2007, 07:31
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Re: shell operador de sustitucion

Problema 1: Seguis poniendo mal las comillas.
Si bien tu script funciona porque es como si hubieras hecho:
Código:
for ficheros in ls *.txt
Si realmente hubieras querido tener la lista de los ficheros en la variable, el codigo correcto es:
Código:
for ficheros in `ls *`
Proba la diferencia con copiando y pegando desde el navegador (no lo transcribas) esto:
Código:
ficheros='ls *.txt'
echo $ficheros 
# Te muestra: 
# ls *.txt

ficheros=`ls *.txt`
echo $ficheros
# Te muestra:
# fichero1.txt fichero2.txt etc.txt
Problema 2: Tenes muy mal la estructura de substrig, deberia ser:
Código:
${ficheros:2:5}
Saludos
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 15/02/2007, 09:39
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo Re: shell operador de sustitucion

muchas gracias, me ha sido muy util tu consejo.
reconozco mi torpeza ya que solo llevo un par de semanas en esto.
resulto perfecto!.

solo dos dudas. las comillas me dices que estan a la derecha de la P. en mi teclado es :´ -> tecla mas espacio.la que usaba es '. y sigo sin ebcontrar....

lo otro. si mi script esta en /mostrar/todo y los archivos que busco estan en
/mostrar. en mi script deberia agregar $HOME/mostrar ?

Denuevo muchisimas gracias.
Atte
MG
__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 15/02/2007, 10:07
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: shell operador de sustitucion

olvidate de $HOME/files...
en el script tenia puesto #HOME.......
(bueno esto ocurre hasta en las mejores familias.....)
__________________
Dios es mas grande que tu problema :-)
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 20:43.