Pages : 1
#1 Le 25/04/2007, à 11:32
- Skyangel
Ouvrir fichier et modifier fichier
Bonjour
Je dois ouvrir des fichiers qui sont dans des sous dossiers de mon dossier courant. Je dois tous les ouvrir et les modifier avec l'aide de 'sed'.
Le problème c'est que je ne sais pas comment les ouvrir tous les uns à la suite des autres pour les traiter avec sed (ca ca va:))
Comment je peux faire? avec un while? (j ai la liste des fichiers s il le faut!)??
D'avance je vous remercie.
#2 Le 25/04/2007, à 14:47
- Compte anonymisé
Re : Ouvrir fichier et modifier fichier
Salut
Tu peux faire ça avec la cmd find :
sudo find répertoire/sous_dossier -type f -exec sed -tes options '{}' \;
Dans cet exemple tu passes ta commande sed sur tous les fichiers (option : -type f).
Tu peux trouver dans le man de find toutes les options possibles.
@+
#3 Le 25/04/2007, à 15:19
- Skyangel
Re : Ouvrir fichier et modifier fichier
Merci de votre aide mais au bout du compte , j ai plutot fai comme ca :
#! /bin/bash
CMD=`ls -1 --ignore modif_fichier`
for i in $CMD;
do
cat $i | sed -e 's/\\\\srv_ruches\\bal\\Signature\\DG\\/c:\\signature\\/g' >/tmp/assis.$$
mv /tmp/assis.$$ $i
echo
echo "ok" $i
echo
done
La ca marche bien!!!!
Merci de votre aide en tout cas
Certifié RHCE!!
Certificate Number: 804007600625335
Je suis disponible pour aider qui que ce soit!!!
Hors ligne
#4 Le 28/04/2007, à 17:11
- kaworu
Re : Ouvrir fichier et modifier fichier
Merci de votre aide mais au bout du compte , j ai plutot fai comme ca :
#! /bin/bash CMD=`ls -1 --ignore modif_fichier` for i in $CMD; do cat $i | sed -e 's/\\\\srv_ruches\\bal\\Signature\\DG\\/c:\\signature\\/g' >/tmp/assis.$$ mv /tmp/assis.$$ $i echo echo "ok" $i echo done
La ca marche bien!!!!
Merci de votre aide en tout cas
Salut !
J'espère pour toi que tu n'as pas de fichier avec des espaces ! Sinon, voilà ton script un peu modifié qui pourra gerrer des fichiers avec espaces :
#! /bin/bash
while read i; do
cat "$i" | sed -e 's/\\\\srv_ruches\\bal\\Signature\\DG\\/c:\\signature\\/g' >/tmp/assis.$$
mv /tmp/assis.$$ "$i"
echo
echo "ok" "$i"
echo
done <(ls -1 --ignore modif_fichier)
Dernière modification par kaworu (Le 28/04/2007, à 17:11)
"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."
Hors ligne