Unix - como buscar posicion de una cadena

 
Vista:

como buscar posicion de una cadena

Publicado por carlos F,F (1 intervención) el 01/06/2014 11:48:22
Buenos dias,
Tengo una Variable que se llama NombreFicheroEntrada y quiero buscar la primera posicion de la variable donde aparezca el valor $PAIS
lo he intentado de muschas maneras con index y no lo consigo, me puede ayudar alguien.
el nombre de la variable es NombreFicheroEntrada
y el valor que contiene la variable es CapRiesgo$PAIS?????$FPERIODO??????.txt

y el codigo utilizado que no me funciona es : PosicionPais=index("$NombreFicheroEntrada","$PAIS")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 39
Ha mantenido su posición en Unix (en relación al último mes)
Gráfica de Unix

como buscar posicion de una cadena

Publicado por Antoni Masana (19 intervenciones) el 09/06/2014 12:09:36
De entrada tienes un problema con el nombre del fichero. El carácter $ hace que el Shell crea que esto:

CapRiesgo$PAIS?????$FPERIODO??????.txt

es igual a esto

CapRiesgo${PAIS}?????${FPERIODO}??????.txt

Con lo que el resultado es este

CapRiesgo???????????.txt

Un ejemplo:

1
2
3
4
5
6
7
NombreFicheroEntrada=CapRiesgo$PAIS?????$FPERIODO??????.txt
 
echo "${NombreFicheroEntrada}" | cut -c10-14
 
NombreFicheroEntrada=CapRiesgo\$PAIS?????\$FPERIODO??????.txt
 
echo "${NombreFicheroEntrada}" | cut -c10-14

La solución:

1
2
?????
$PAIS


Otro Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
NombreFicheroEntrada=CapRiesgo034?????201205??????.txt
 
for a in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #  16 17 18 19 20 21 22 23 24 25
do
         echo "${NombreFicheroEntrada}" | cut -c${a}- | cut -c-3
   pais=`echo "${NombreFicheroEntrada}" | cut -c${a}- | cut -c-3`
   [ "${pais}" = "034" ] && Posi=$a
done
 
echo Posicion ${Posi}
echo "${NombreFicheroEntrada}" | cut -c10-12

Resultado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Cap
apR
pRi
Rie
ies
esg
sgo
go0
o03
034
34?
4??
???
???
Posicion 10
034

No se si esto resuelve tu pregunta. otra herramienta que también puede resultar útil es la AWK pero esto es otra historia y sigue sin quedarme claro lo del nombre del archivo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar