Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/04/2007, à 12: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, à 15: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, à 16: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, à 18:11

kaworu

Re : Ouvrir fichier et modifier fichier

Skyangel a écrit :

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, à 18:11)


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne