Avviso: vi è stato un importante aggiornamento della piattaforma forum, si prega di visionare la discussione in merito: viewtopic.php?f=17&t=637551.

Script per cambio data automatico di un link

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi riposta
master1986
Prode Principiante
Messaggi: 52
Iscrizione: sabato 27 aprile 2013, 15:06
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Script per cambio data automatico di un link

Messaggio da master1986 » domenica 7 luglio 2019, 18: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://mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm=2019/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

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3616
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatto:

Re: Script per cambio data automatico di un link

Messaggio da UbuNuovo » domenica 7 luglio 2019, 21: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.

master1986
Prode Principiante
Messaggi: 52
Iscrizione: sabato 27 aprile 2013, 15:06
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggio da master1986 » domenica 7 luglio 2019, 23: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

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3616
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatto:

Re: Script per cambio data automatico di un link

Messaggio da UbuNuovo » domenica 7 luglio 2019, 23: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.

master1986
Prode Principiante
Messaggi: 52
Iscrizione: sabato 27 aprile 2013, 15:06
Desktop: Mate
Distribuzione: 18.04 64bit
Sesso: Maschile

Re: Script per cambio data automatico di un link

Messaggio da master1986 » lunedì 8 luglio 2019, 22:12

Ciao, ti ringrazio per tutto, ma continua a non funzionare. Non riesce a modificare nulla :(

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3616
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatto:

Re: Script per cambio data automatico di un link

Messaggio da UbuNuovo » lunedì 8 luglio 2019, 22: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: 3616
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatto:

Re: Script per cambio data automatico di un link

Messaggio da UbuNuovo » lunedì 8 luglio 2019, 23: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.

Scrivi riposta

Torna a

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti and 9 ospiti