Autor
|
Tema: Ayuda con script (en bash, python o perl) (Leído 2,834 veces)
|
akakariko
Desconectado
Mensajes: 3
|
Buenas tardes, me gustaría cambiar un dato de un .txt (en realidad es para no tener que modificar a mano uno a uno el número del .html)
Os cuento, en un .html que he creado, hay una línea que contiene un índice, para que al pulsar un botón se pasen unas fotos hacia adelante y hacia atrás, el caso, es que al eliminar una de esas líneas con su respectivo indice, al pulsar el botón de la web sale que no se ha encontrado el archivo (cosa lógica), lo que ocurre es que como son 2345 números los que habría que reordenar (del 1 en adelante consecutivamente) a mano es un poco desesperante. Os pongo un ejemplo:
<aesto es una línea de codigo> <data-ind="1" <besto es una línea de codigo> <data-ind="numero que os digo" <cesto es una línea de codigo> <data-ind="5" <desto es una línea de codigo> <data-ind="6"
Pues lo que me gustaría hacer es un script que abra el archivo en modo txt y me reenumere esos números tal que así:
<aesto es una línea de codigo> <data-ind="1" <besto es una línea de codigo> <data-ind="2" <cesto es una línea de codigo> <data-ind="3" <desto es una línea de codigo> <data-ind="4"
He intentado hacerlo en C, pero no sé como hacer para que el programa sepa que solo quiero cambiar ese número de la palabra, también lo he intentado con perl, pero como no lo manejo bien, he desistido, he buscado programas que permitan hacer eso que os he comentado pero no he encontrado ninguno capaz de reenumerar de forma ascendente el número dentro de una expresión.
Os agradecería mucho vuestra ayuda
|
|
|
En línea
|
|
|
|
|
akakariko
Desconectado
Mensajes: 3
|
Gracias, he estado echándole un vistazo y sí, me sirve, pero cómo podría decirle que me busque todas las líneas data-ind="cualquier numero"?, lo que quiero es que ese cualquier número me lo cambie por el 1, el 2, el 3 según vaya el script encontrándose esa expresión
|
|
|
En línea
|
|
|
|
warcry.
Desconectado
Mensajes: 1.004
|
no se muy bien lo que quieres pero como estaba aburrido... bien parto de este "fichero" inicial <aesto es una línea de codigo> <data-ind="1" <besto es una línea de codigo> <data-ind="4" <cesto es una línea de codigo> <data-ind="5" <desto es una línea de codigo> <data-ind="6" y lo que quieres es que se numeren consecutivamente bien, en bash me ha salido esto #!/bin/bash
# lo primero eliminamos las lineas en blanco
sed '/^$/d' fichero > fichero1
#ahora quitamos la numeracion erronea
sed s'/<data-ind="[0-9][0-9]*"//'g fichero1 > fichero2
#procedemos a numerar las lineas del archivo
nl fichero2 |awk '{print $1}' > fichero3
#ahora insertamos la cadena que indexa
sed s'/$/<data-ind="/'g fichero2 > fichero4
#unimos la secuencia numerica a la cadena que indexa
paste -d "" fichero4 fichero3 > fichero5
#y por ultimo añadimos las comillas que cierran cada expresion
sed s'/$/"/'g fichero5 > resultado
#vemos el resultado
cat resultado
#no hay que olvidarse de hacer limpieza de los archivos temporales
rm -f fichero1 rm -f fichero2 rm -f fichero3 rm -f fichero4 rm -f fichero5
echo -e "
Que tengas un buen dia
"
break
PD: que no me salga ningún purista de código a criticar, no soy programador, no se programar, ademas me aburre mogollón el tema de la programación, simplemente hago script funcionales, usease que cumplen su misión
|
|
« Última modificación: 25 Septiembre 2017, 20:41 pm por warcry. »
|
En línea
|
HE SIDO BANEADO --- UN PLACER ---- SALUDOS
|
|
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
Te dejo como hacerlo en vim. :let i=1 | g/<data-ind="\d\+"/s//\="<data-ind=\"".i."\""/ | let i=i+1 Nótese el .i., cualquier otra solución es por definición menos masculina. Suerte
|
|
« Última modificación: 28 Septiembre 2017, 21:59 pm por Slava_TZD »
|
En línea
|
The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BASH] Script instalación de módulos Perl
Scripting
|
leogtz
|
1
|
2,620
|
14 Enero 2011, 04:35 am
por m1kh41l
|
|
|
[Bash] Abrir un proceso o otro script bash en una nueva shell
Scripting
|
nhaalclkiemr
|
2
|
14,431
|
27 Agosto 2011, 06:23 am
por nhaalclkiemr
|
|
|
AYUDA con script Bash
Scripting
|
DiegoMarley
|
2
|
2,520
|
2 Diciembre 2014, 18:39 pm
por daryo
|
|
|
Ayuda script bash
Scripting
|
splendid37
|
0
|
1,835
|
5 Mayo 2016, 16:12 pm
por splendid37
|
|
|
Ayuda script en bash
Scripting
|
tojiji
|
2
|
2,394
|
8 Noviembre 2016, 15:38 pm
por tojiji
|
|