Modifier un mot de fichiers d'un repertoire
Résolu
isagarran
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
isagarran Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
isagarran Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un très faible niveau de scripting. Je cherche comment à partir d'un point d'une arborescence donnée (et sous répertoires), je pourrais modifier tous les fichiers contenant une chaine de caractère donnée par une autre chaine de caractères.
En clair, remplacer tous les TITI, qui se trouve dans des fichiers d'un répertoire, par TUTU.
Ce sera à exécuter sous Linux mais je teste sous Cygwin (windows XP).
Merci beaucoup,
jp
En clair, remplacer tous les TITI, qui se trouve dans des fichiers d'un répertoire, par TUTU.
Ce sera à exécuter sous Linux mais je teste sous Cygwin (windows XP).
Merci beaucoup,
jp
A voir également:
- Modifier un mot de fichiers d'un repertoire
- Modifier dns - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Trousseau mot de passe iphone - Guide
- Modifier liste déroulante excel - Guide
3 réponses
Salut,
lami20j@deb:~$ ls -l /home/lami20j/aaa/ total 12 -rw-r--r-- 1 lami20j lami20j 5 2007-06-30 20:56 a.txt -rw-r--r-- 1 lami20j lami20j 5 2007-06-30 20:56 b.txt -rw-r--r-- 1 lami20j lami20j 5 2007-06-30 20:56 c.txt lami20j@deb:~$ cat /home/lami20j/aaa/*.txt titi titi titi lami20j@deb:~$ sed -i 's/titi/toto/' /home/lami20j/aaa/*.txt lami20j@deb:~$ cat /home/lami20j/aaa/*.txt toto toto toto lami20j@deb:~$
Salut,
tous les fichiers contenant une chaine de caractère donnée par une autre chaine de caractères.
En clair, remplacer tous les TITI, qui se trouve dans des fichiers d'un répertoire, par TUTU.
Bon, pour ce que tu as demandé ej t'ai donné un exemple :-))
Pour ce que tu veux en réalité, jipicy a adapté la réponse :-)
Pour conclure :-DD
l'option g que je l'appellerais plutôt modificateur de regex permet de remplacer plusieurs occurences
si on utilise la regex sans ce modificateur ce n'est que la 1ère occurence de chaque ligne qui sera remplacer
en combinaison avec find on applique la commande à toute les fichiers .txt d'une arborescence
Voici pour étudier et comprendre (à utiliser find pour l'arborescence)
lami20j
tous les fichiers contenant une chaine de caractère donnée par une autre chaine de caractères.
En clair, remplacer tous les TITI, qui se trouve dans des fichiers d'un répertoire, par TUTU.
Bon, pour ce que tu as demandé ej t'ai donné un exemple :-))
Pour ce que tu veux en réalité, jipicy a adapté la réponse :-)
Pour conclure :-DD
l'option g que je l'appellerais plutôt modificateur de regex permet de remplacer plusieurs occurences
si on utilise la regex sans ce modificateur ce n'est que la 1ère occurence de chaque ligne qui sera remplacer
en combinaison avec find on applique la commande à toute les fichiers .txt d'une arborescence
Voici pour étudier et comprendre (à utiliser find pour l'arborescence)
lami20j@deb:~/aaa$ cat /home/lami20j/aaa/*.txt titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi lami20j@deb:~/aaa$ sed -i 's/titi/toto/' /home/lami20j/aaa/*.txt lami20j@deb:~/aaa$ cat /home/lami20j/aaa/*.txt toto titi toto toto titi titi toto titi toto toto titi titi toto titi toto toto titi titi lami20j@deb:~/aaa$ cat /home/lami20j/aaa/*.txt titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi titi lami20j@deb:~/aaa$ sed -i 's/titi/toto/g' /home/lami20j/aaa/*.txt lami20j@deb:~/aaa$ cat /home/lami20j/aaa/*.txt toto toto toto toto toto toto toto toto toto toto toto toto toto toto toto toto toto toto lami20j@deb:~/aaa$--
lami20j
Le sed me permet de modifier une ou plusieurs occurences de titi dans UN fichier tel que tu me l'as démontré (en fait plusieurs m'intéresse. c'est l'option g, je crois).
Ce qu je voudrais, c'est effectuer cette opération de manière récursive à partir d'une arborescence et le faire dans tous les sous-répertoires, pour tout les fichiers.
merci,