Alternative agli script Perl / python per trovare e sostituire

-1

Sto lavorando su una base di codice abbastanza vecchia ma sufficientemente improduttiva che ho bisogno di creare uno (alcuni) script per aiutarmi.

Ad esempio:

  • aggiungiamo una versione # e un timestamp nell'intestazione del file (sì, usiamo un sistema basato sul CVS ma questo è fuori dal mio controllo).
  • abbiamo duplicato il codice di layout per lingue diverse (questa è l'era pre-unicode quindi duplichiamo semplicemente le cose) e quando l'attributo di un controllo cambia in una lingua che cambia deve essere sovrapposta alle altre.

Quindi, i miei primi pensieri erano un paio di script perl o python per trovare & sostituire per risolvere questi due problemi. Ma volevo raggiungere e vedere se qualcun altro aveva un approccio diverso.

    
posta cbrulak 20.01.2014 - 17:04
fonte

1 risposta

1

Aggiungere un # e timestamp a ogni intestazione di file può essere fatto facilmente da qualsiasi linguaggio di scripting con buone capacità di elaborazione del testo, se si intende usare Perl, Python, awk o sed dipende principalmente da cosa siete abituati, cosa come meglio, e ciò che è disponibile nell'ambiente che stai lavorando. Diamine, ho implementato queste cose anche in VBscript (usando regexp di MS) perché potrei tranquillamente pensare che sia già installato nel nostro ambiente Windows.

La ricerca di "attributi" nel codice, tuttavia, può funzionare con la ricerca e la sostituzione testuali, ma c'è sempre il rischio di distruggere letterali o commenti di stringhe in questo modo. Se pensi che questo sia molto improbabile nel tuo ambiente, fallo in questo modo. Ma se vuoi evitare questo rischio, potresti dover investire più sforzi e costruire (o trovare) qualche tipo di parser per il linguaggio di programmazione in cui è scritto il tuo codice di layout. Per HTML, dovresti prendere in considerazione l'uso di qualche tipo di parser DOM come questo per Perl o questo per Python .

    
risposta data 20.01.2014 - 17:36
fonte

Leggi altre domande sui tag