Script per cambio data automatico di un link

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Script per cambio data automatico di un link

Messaggioda master1986 » domenica 7 luglio 2019, 17:22

Ciao a tutti, ho bisogno di creare uno script .sh che mi faccia modificare una stringa (contenente una data all'interno di un file)

Premettiamo che il file in questione sia sorgente.sh al cui interno ci sono dei comandi, e come prima linea un link tipo questo:


http://mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ... /07/07/12/

La data è così: anno/mese/giorno, l'ultimo numero non cambia resta sempre così. Mi interessa che lo script vada a modificare ogni giorno la data 2019/07/07 aggiornandola in base a quella del pc/server.


Grazie mille
master1986
Prode Principiante
 
Messaggi: 52
Iscrizione: aprile 2013
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda UbuNuovo » domenica 7 luglio 2019, 20:42

Cosa intendi con
l'ultimo numero non cambia resta sempre così
?
Nell'esempio hai messo anno mese e giorno a due cifre e con le barre ad inizio e fine; mi sono basato su quanto hai scritto.
La regex accetta come valori del primo campo (anno) da 2 a 4 cifre [0-9]{2,4} e gli altri campi (mese e giorno) come numeri a due cifre; le barre iniziali e finali, nella sostituzione, vengono eliminate, visto che nell'output voluto non le hai messe 2019/07/07.
Considerato l'esempio che hai postato:

il file da modificare:
Codice: Seleziona tutto
8-) cat sorgente.sh
http://mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ... /07/07/12/
http://questo no... /07/07/12/


il codice sotto, provato nel terminale, funziona
Codice: Seleziona tutto
8-) nome_file='sorgente.sh'
8-) oggi=$(date +%Y/%m/%d)
8-) sed "1s@/[0-9]\{2,4\}/[0-9]\{2\}/[0-9]\{2\}/@$oggi@" "$nome_file"
http://mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ... 2019/07/07
http://questo no... /07/07/12/
8-)


una volta verificato il corretto funzionamento, per effettuare realmente la sostituzione nel file, aggiungi il parametro "-i" a sed:
Codice: Seleziona tutto
sed -i "1s@/[0-9]\{2,4\}/[0-9]\{2\}/[0-9]\{2\}/@$oggi@" "$nome_file"
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3374
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda master1986 » domenica 7 luglio 2019, 22:02

Forse ho inserito il link sbagliato, oppure il forum lo ha modificato:

eccolo:

http://linkcompleto=2019/07/07/12/


Gli / sono obbligatori nel link non si possono togliere. Mi serve quindi modificare anno/mese/giorno quindi 2019/07/07 mentre /12 deve restare così perchè sarebbero cartelle "fisse". Ho provato lo script ma non funziona, forse perchè non mi ero spiegato bene. Grazie mille
master1986
Prode Principiante
 
Messaggi: 52
Iscrizione: aprile 2013
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda UbuNuovo » domenica 7 luglio 2019, 22:21

Codice: Seleziona tutto
8-) cat sorgente.sh
http://linkcompleto=2014/03/03/12/
http://questo no=2014/03/03/12/

Codice: Seleziona tutto
8-) nome_file='sorgente.sh'
8-) oggi=$(date +%Y/%m/%d)
8-) sed "1s@[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}/12/@$oggi/12/@" "$nome_file"
http://linkcompleto=2019/07/07/12/
http://questo no=2014/03/03/12/
8-)


Vista la differenza dovresti essere capace di modificarlo a tuo piacere.

P.S.: se il 12 è un numero a due cifre variabile:
Codice: Seleziona tutto
sed "1s@[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}/\([0-9]\{2\}\)/@$oggi/\1/@" "$nome_file"
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3374
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda master1986 » lunedì 8 luglio 2019, 21:12

Ciao, ti ringrazio per tutto, ma continua a non funzionare. Non riesce a modificare nulla :(
master1986
Prode Principiante
 
Messaggi: 52
Iscrizione: aprile 2013
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda UbuNuovo » lunedì 8 luglio 2019, 21:21

Per la modifica del file, come ho già detto, devi usare '-i'.
Se neanche da terminale vedi la modifica, controlla che la riga da modificare sia realmente la prima (sed "1...).
Se tutto sembra a posto postami le prime righe originali del file da modificare, va bene anche per M.P..
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3374
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggioda UbuNuovo » lunedì 8 luglio 2019, 22:33

Se ho capito bene, dovrebbe bastarti questo codice che imposta il parametro GET con la data dell'esecuzione del codice:
Codice: Seleziona tutto
wget http://qua-metti-url-fisso/?prefix=$(date +%Y/%m/%d)/12
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 3374
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 6 ospiti