elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con script (en bash, python o perl)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con script (en bash, python o perl)  (Leído 2,521 veces)
akakariko

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda con script (en bash, python o perl)
« en: 16 Septiembre 2017, 16:45 pm »

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

**Aincrad**


Desconectado Desconectado

Mensajes: 668



Ver Perfil WWW
Re: Ayuda con script (en bash, python o perl)
« Respuesta #1 en: 16 Septiembre 2017, 19:42 pm »

no capto muy bien tu idea de lo que quieres.

pero tal vez esto te ayude a crear el escript:

http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html
 


En línea



akakariko

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con script (en bash, python o perl)
« Respuesta #2 en: 16 Septiembre 2017, 22:33 pm »

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 Desconectado

Mensajes: 1.004


Ver Perfil
Re: Ayuda con script (en bash, python o perl)
« Respuesta #3 en: 25 Septiembre 2017, 20:37 pm »

no se muy bien lo que quieres pero como estaba aburrido...  :P

bien parto de este "fichero" inicial

Código:
<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

Código:
#!/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  :P
« Última modificación: 25 Septiembre 2017, 20:41 pm por warcry. » En línea

HE SIDO BANEADO --- UN PLACER ---- SALUDOS
Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Ayuda con script (en bash, python o perl)
« Respuesta #4 en: 28 Septiembre 2017, 20:36 pm »

Te dejo como hacerlo en vim.

Código:
: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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BASH] Script instalación de módulos Perl
Scripting
leogtz 1 2,432 Último mensaje 14 Enero 2011, 04:35 am
por m1kh41l
[Bash] Abrir un proceso o otro script bash en una nueva shell
Scripting
nhaalclkiemr 2 13,994 Último mensaje 27 Agosto 2011, 06:23 am
por nhaalclkiemr
AYUDA con script Bash
Scripting
DiegoMarley 2 2,267 Último mensaje 2 Diciembre 2014, 18:39 pm
por daryo
Ayuda script bash
Scripting
splendid37 0 1,628 Último mensaje 5 Mayo 2016, 16:12 pm
por splendid37
Ayuda script en bash
Scripting
tojiji 2 2,073 Último mensaje 8 Noviembre 2016, 15:38 pm
por tojiji
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines