Search and replace [script] - Linux et OS Alternatifs
Marsh Posté le 05-04-2005 à 15:01:32
1. regarde peut etre rename
2. sed ou awk devrait faire l'affaire
Marsh Posté le 05-04-2005 à 15:05:27
salut,
j'ai déjà cherché des infos sur seb et awk mais je capte rien
tu pourrais m'aiguiller ?
++
Marsh Posté le 05-04-2005 à 15:07:52
C'est quoi la question au juste? Tu veux remplacer toutes les occurences de .php par .php5 dans un fichier texte?
Marsh Posté le 05-04-2005 à 15:09:28
dans tous les fichiers texte d'un répertoire et de ces sous-répertoires et aussi renomer les fichiers php en php5
++
Marsh Posté le 05-04-2005 à 15:10:57
tu peux faire quelquechose comme ça :
for file in `find . -name '*.php'
do
#Renomme les fichiers
newfile=`echo $file | sed 's/.php/.php5/'`
`mv $file $newfile
#Change le contenu
`sed 's/.php/.php5/g' < $newfile`
done
J'espere que ça marche.
ciao
Edit: J'avais oublié des ' dans le deuxième sed, peut-$etre que ça marche sans !
Marsh Posté le 05-04-2005 à 15:14:37
merci, j'ai une petite erreur :
./script.sh: line 5: syntax error near unexpected token `|'
./script.sh: line 5: ` newfile=`echo $file | sed 's/.php/.php5/'``mv $file $newfile'
Marsh Posté le 05-04-2005 à 15:17:23
mr simon a écrit : tu peux faire quelquechose comme ça : |
On peut aussi utiliser un vrai shell et se contenter de find file in **/*.php
Citation : #Renomme les fichiers |
Il faut enlever les backquotes autour du mv et ça marche, mais eek quoi. mv "$file" "$file"\5. Ou un truc avec rename
Citation : #Change le contenu |
Pareil, il faut enlever les backquotes, et il faut rajouter -i à sed.
Marsh Posté le 05-04-2005 à 15:24:12
ben zut, je dois vraiment ête nul mais mais j'ai toujours la même erreur
Marsh Posté le 05-04-2005 à 15:32:14
ah génial
ca remplace le nom des fichiers
Comment remplacer dans le contenu des fichiers maitenant?
++
Marsh Posté le 05-04-2005 à 15:36:45
ohan a écrit : ah génial |
man sed
sed -i 's/toto/tata/g' nomdufichier |
remplace toutes les occurrences de toto par tata dans le fichier nomdufichier.
Marsh Posté le 05-04-2005 à 15:39:22
Pillow a écrit : man sed
remplace toutes les occurrences de toto par tata dans le fichier nomdufichier. |
le '<' je suis pas sur qu'il soit obligatoire
Marsh Posté le 05-04-2005 à 15:40:08
ah, c'est bien ce que je pensais
g compris ce qui n'allait pas:
1.j'ai testé avec des fichiers php vide
2.j'ai ajouté du contenu au fichier php5 et forcement, ca ne fonctionnait aps car il travaille qu'avec les .php
Merci à tous pour votre aide.
++
Marsh Posté le 05-04-2005 à 15:42:48
l0ky a écrit : le '<' je suis pas sur qu'il soit obligatoire |
Exact, évidemment ça ne risque pas de marcher avec -i
Marsh Posté le 05-04-2005 à 14:50:45
salut à tous,
Est ce qu'il existe une commande pour chercher et remplacer dans un répertoire:
-tous les fichiers .php par exemple en .php5
-dans le contenu de tous les fichiers ayant .php par .php5
Merci pour votre aide
++