PDA

Visualizza la versione completa : sostituire il testo di X files con la stessa frase


alkat
17-06-2005, 19:52
ciao,
ho un bel pacco di file html e php che dovrei modificare in massa: praticamente devo sostituire in tutti il contenuto con un altro testo, uguale per tutti.

come fo'?

.a.

mageta
17-06-2005, 20:31
ecco qua:

#!/bin/bash
#VARIABILI
DIR="/prova/"
MSG="messaggio da scrivere"

for page in `ls ${DIR}`
do
echo ${MSG} > ${page}
done

exit 0


occhio a mettere lo script in una dir diversa da quella che contiene i file da riscrivere altrimenti riscrivi pure lo script. Se ci sono file che non devono essere modificati di qualsiasi tipo toglili da suddetta dir altrimenti verranno modificati irreparabilmente.

Sta attento ad usare sto scrip che potresti distruggere un del po di file...

non mi assumo responsabilità ovviamente :fighet:

alkat
17-06-2005, 22:38
c'è qualcosa che non va...



#!/bin/bash
#VARIABILI
DIR="/home/ale/Desktop/prova-sostituzione-testo/"
MSG="inserisci il seguente testo"

for page in `ls ${DIR}`
do
echo ${MSG} > ${page}
done

exit 0

non ha sostituito nulla nei tre file di prova che avevo messo nella directory indicata.

come mai?

.a.

alkat
17-06-2005, 22:57
Originariamente inviato da alkat
c'è qualcosa che non va...

non ha sostituito nulla nei tre file di prova che avevo messo nella directory indicata.

come mai?

.a.

bastava mettere un asterisco alla fine del percorso...

ora: come faccio a renderlo ricorsivo?

cioè, come posso far sì che mi modifichi tutti i file nella cartella /dir/ e nelle sottocartelle /dir/uno /dir/due ecc.?

.a.

Mutato
18-06-2005, 01:28
Originariamente inviato da alkat
bastava mettere un asterisco alla fine del percorso...

ora: come faccio a renderlo ricorsivo?

cioè, come posso far sì che mi modifichi tutti i file nella cartella /dir/ e nelle sottocartelle /dir/uno /dir/due ecc.?

.a.



for page in `tree -if ${DIR}`

alkat
18-06-2005, 09:26
Originariamente inviato da Mutato


for page in `tree -if ${DIR}`


ottimo!
questo fa quello che mi serve, MA...


ora ho un nuovo problema: il testo che devo inserire è del codice html e immagino che lo script si incasini con le virgolette contenute nel codice html. come posso dirgli di ignorare certi caratteri?

questo è il codice, come lo devo modificare per farlo digerire allo script?



<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Redirect
</title>
<meta name="GENERATOR" content="Quanta Plus" />
<meta name="AUTHOR" content="xxx" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="refresh" content="0;url=home/index.php" />
</head>
<body>
Se non siete reindirizzati automaticamente al sito, cliccate sul link sottostante.


entra nel sito (home/index.php)
</body>
</html>

grazie,
.a.

edriv
18-06-2005, 09:59
Mah io non so niente di script, ma farei così:


#!/bin/bash
#VARIABILI
DIR="/home/ale/Desktop/prova-sostituzione-testo/"
FILEMSG="/home/ale/codice-da-mettere.xml"

for page in `tree -if ${DIR}`
do
cat ${FILEMSG} > ${page}
done

exit 0


dove filemsg è il file di testo che contiene il codice da mettere.
Spero che vada :stordita: ma forse andava bene anche prima

alkat
18-06-2005, 10:10
Originariamente inviato da edriv
Mah io non so niente di script, ma farei così:

dove filemsg è il file di testo che contiene il codice da mettere.
Spero che vada :stordita: ma forse andava bene anche prima

...geniale!

grazie, ora va.

.a.

[e pensare che mi sono scaricato da mesi un paio di guide sullo scripting, ma sono ancora lì, ferme sul desktop e mai toccate...]

Mutato
18-06-2005, 19:38
Originariamente inviato da alkat
[e pensare che mi sono scaricato da mesi un paio di guide sullo scripting, ma sono ancora lì, ferme sul desktop e mai toccate...]

E' il fatto che siano sul Desktop che e' tremendo :fighet:

Loading