find d'un répertoire et supprimer une expression dans des fichiers
5 réponses
andre_debian
Bonjour,
Honte =E0 moi, je sais pas faire,
Je d=E9sire accoupler =E0 la commande "find",
la recherche d'une expression dans tous les fichiers
d'un r=E9pertoire et ensuite de supprimer cette expression par rien.
Soit un mod=E8le comme ceci :
=2D find /var -exec egrep -n "<expression>" {} \; -print;
=2D cat fichier | grep -n <expression>
=2D sed -i 's/<expression>//g' fichier
Je n'arrive pas =E0 le faire par une ligne sinon par un programme "bash".
Merci d'avance.
andr=E9
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/201310161448.06262.andre_debian@numericable.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
S
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, a écrit :
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin…).
Seb
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, andre_debian@numericable.fr a écrit :
Soit un modèle comme ceci :
- find /var -exec egrep -n "<expression>" {} ; -print;
- cat fichier | grep -n <expression>
- sed -i 's/<expression>//g' fichier
Quelque chose comme ça ?
find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var
avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde
dans un coin…).
Seb
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20131016131139.GF14545@sebian.nob900.homeip.net
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin…).
Seb
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Jean-Jacques Doti
Salut,
Le 16/10/2013 14:48, a écrit :
Bonjour,
Honte à moi, je sais pas faire,
Je désire accoupler à la commande "find", la recherche d'une expression dans tous les fichiers d'un répertoire et ensuite de supprimer cette expression par rien.
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Je n'arrive pas à le faire par une ligne sinon par un programme "bash".
Merci d'avance.
andré
Tu peux laisser tomber le find en utilisant la possibilité qu'a grep de parcourir une arborescence et à ne cracher que les noms des fichiers dans lesquels le motif a été trouvé. Je pense que quelque chose comme ça doit pouvoir répondre à ta demande :
egrep va sortir les noms des fichiers qui contiennent on expression et xargs va appeler sed pour chacun de ces noms, en prenant le retour à la ligne comme séparateur, ce qui permet de traiter correctement les fichiers dont le nom contient des espaces (l'option "-n 1" de xargs permet d'appeler sed pour chacun des fichiers dans lesquels <expression> a été trouvé ; tu peux supprimer cette option et n'appeler sed qu'une seule fois pour plus d'efficacité à condition qu'il n'y ait pas trop de résultats ou mettre une valeur plus importante pour faire moins d'appels à sed).
A+ Jean-Jacques
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Salut,
Le 16/10/2013 14:48, andre_debian@numericable.fr a écrit :
Bonjour,
Honte à moi, je sais pas faire,
Je désire accoupler à la commande "find",
la recherche d'une expression dans tous les fichiers
d'un répertoire et ensuite de supprimer cette expression par rien.
Soit un modèle comme ceci :
- find /var -exec egrep -n "<expression>" {} ; -print;
- cat fichier | grep -n <expression>
- sed -i 's/<expression>//g' fichier
Je n'arrive pas à le faire par une ligne sinon par un programme "bash".
Merci d'avance.
andré
Tu peux laisser tomber le find en utilisant la possibilité qu'a grep de
parcourir une arborescence et à ne cracher que les noms des fichiers
dans lesquels le motif a été trouvé.
Je pense que quelque chose comme ça doit pouvoir répondre à ta demande :
egrep va sortir les noms des fichiers qui contiennent on expression et
xargs va appeler sed pour chacun de ces noms, en prenant le retour à la
ligne comme séparateur, ce qui permet de traiter correctement les
fichiers dont le nom contient des espaces (l'option "-n 1" de xargs
permet d'appeler sed pour chacun des fichiers dans lesquels <expression>
a été trouvé ; tu peux supprimer cette option et n'appeler sed qu'une
seule fois pour plus d'efficacité à condition qu'il n'y ait pas trop de
résultats ou mettre une valeur plus importante pour faire moins d'appels
à sed).
A+
Jean-Jacques
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/525E9037.40701@doti.fr
Je désire accoupler à la commande "find", la recherche d'une expression dans tous les fichiers d'un répertoire et ensuite de supprimer cette expression par rien.
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Je n'arrive pas à le faire par une ligne sinon par un programme "bash".
Merci d'avance.
andré
Tu peux laisser tomber le find en utilisant la possibilité qu'a grep de parcourir une arborescence et à ne cracher que les noms des fichiers dans lesquels le motif a été trouvé. Je pense que quelque chose comme ça doit pouvoir répondre à ta demande :
egrep va sortir les noms des fichiers qui contiennent on expression et xargs va appeler sed pour chacun de ces noms, en prenant le retour à la ligne comme séparateur, ce qui permet de traiter correctement les fichiers dont le nom contient des espaces (l'option "-n 1" de xargs permet d'appeler sed pour chacun des fichiers dans lesquels <expression> a été trouvé ; tu peux supprimer cette option et n'appeler sed qu'une seule fois pour plus d'efficacité à condition qu'il n'y ait pas trop de résultats ou mettre une valeur plus importante pour faire moins d'appels à sed).
A+ Jean-Jacques
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Dominique Asselineau
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, a écrit : > Soit un modèle comme ceci : > - find /var -exec egrep -n "<expression>" {} ; -print; > - cat fichier | grep -n <expression> > - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient des choses dynamiques, notamment si un serveur SQL tourne avec le risque de désynchroiser les fichiers et ce que contient le cache du dit serveur. Et il y a peut-être d'autres daemons qui pourraient être « impactés » ? Bref, ça me paraît bien téméraire de lancer une telle commande globalement sur tout /var.
dom --
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, andre_debian@numericable.fr a écrit :
> Soit un modèle comme ceci :
> - find /var -exec egrep -n "<expression>" {} ; -print;
> - cat fichier | grep -n <expression>
> - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ?
find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var
avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde
dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient
des choses dynamiques, notamment si un serveur SQL tourne avec le
risque de désynchroiser les fichiers et ce que contient le cache du
dit serveur. Et il y a peut-être d'autres daemons qui pourraient être
« impactés » ? Bref, ça me paraît bien téméraire de lancer une telle
commande globalement sur tout /var.
dom
--
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20131016135951.GC15973@telecom-paristech.fr
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, a écrit : > Soit un modèle comme ceci : > - find /var -exec egrep -n "<expression>" {} ; -print; > - cat fichier | grep -n <expression> > - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient des choses dynamiques, notamment si un serveur SQL tourne avec le risque de désynchroiser les fichiers et ce que contient le cache du dit serveur. Et il y a peut-être d'autres daemons qui pourraient être « impactés » ? Bref, ça me paraît bien téméraire de lancer une telle commande globalement sur tout /var.
dom --
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
Philippe Gras
OK, tournons la question avec un autre exemple que /var
Moi aussi, ça m'intéresse ce truc :-)
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit :
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, a écrit :
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient des choses dynamiques, notamment si un serveur SQL tourne avec le risque de désynchroiser les fichiers et ce que contient le cache du dit serveur. Et il y a peut-être d'autres daemons qui pourraient être « impactés » ? Bref, ça me paraît bien téméraire de lancer une telle commande globalement sur tout /var.
dom --
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/ paristech.fr
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
OK, tournons la question avec un autre exemple que /var
Moi aussi, ça m'intéresse ce truc :-)
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit :
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, andre_debian@numericable.fr a
écrit :
Soit un modèle comme ceci :
- find /var -exec egrep -n "<expression>" {} ; -print;
- cat fichier | grep -n <expression>
- sed -i 's/<expression>//g' fichier
Quelque chose comme ça ?
find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins
sensible que /var
avant de te lancer (et p'têt aussi de t'assurer que tu as une
bonne sauvegarde
dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient
des choses dynamiques, notamment si un serveur SQL tourne avec le
risque de désynchroiser les fichiers et ce que contient le cache du
dit serveur. Et il y a peut-être d'autres daemons qui pourraient être
« impactés » ? Bref, ça me paraît bien téméraire de lancer une telle
commande globalement sur tout /var.
dom
--
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet
"unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20131016135951.GC15973@telecom-
paristech.fr
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/97BF1B3F-FB7F-4003-A753-6199D6363D91@worldonline.fr
OK, tournons la question avec un autre exemple que /var
Moi aussi, ça m'intéresse ce truc :-)
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit :
Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
Bonjour,
Le mercredi 16 octobre 2013 à 14:48, a écrit :
Soit un modèle comme ceci : - find /var -exec egrep -n "<expression>" {} ; -print; - cat fichier | grep -n <expression> - sed -i 's/<expression>//g' fichier
Quelque chose comme ça ? find /var -type f -exec sed -i 's/<expression>//g' {} ;
Je te conseille de tester ta commande dans un dossier moins sensible que /var avant de te lancer (et p'têt aussi de t'assurer que tu as une bonne sauvegarde dans un coin???).
Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient des choses dynamiques, notamment si un serveur SQL tourne avec le risque de désynchroiser les fichiers et ce que contient le cache du dit serveur. Et il y a peut-être d'autres daemons qui pourraient être « impactés » ? Bref, ça me paraît bien téméraire de lancer une telle commande globalement sur tout /var.
dom --
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/ paristech.fr
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
andre_debian
On Wednesday 16 October 2013 17:44:39 Philippe Gras wrote:
OK, tournons la question avec un autre exemple que /var Moi aussi, ça m'intéresse ce truc :-)
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit : > Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200 >> Quelque chose comme ça ? >> find /var -type f -exec sed -i 's/<expression>//g' {} ; >> Je te conseille de tester ta commande dans un dossier moins >> sensible que /var >> avant de te lancer (et p'têt aussi de t'assurer que tu as une >> bonne sauvegarde >> dans un coin???).
> Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient > des choses dynamiques, notamment si un serveur SQL tourne avec le > risque de désynchroniser les fichiers et ce que contient le cache du > dit serveur. Et il y a peut-être d'autres daemons qui pourraient ê tre > « impactés » ? Bref, ça me paraît bien téméraire de lanc er une telle > commande globalement sur tout /var. > dom
Merci de me prévenir, je vais faire très attention en me limitant à d es sous-répertoires de /var/ ...
andré
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
On Wednesday 16 October 2013 17:44:39 Philippe Gras wrote:
OK, tournons la question avec un autre exemple que /var
Moi aussi, ça m'intéresse ce truc :-)
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit :
> Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200
>> Quelque chose comme ça ?
>> find /var -type f -exec sed -i 's/<expression>//g' {} ;
>> Je te conseille de tester ta commande dans un dossier moins
>> sensible que /var
>> avant de te lancer (et p'têt aussi de t'assurer que tu as une
>> bonne sauvegarde
>> dans un coin???).
> Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient
> des choses dynamiques, notamment si un serveur SQL tourne avec le
> risque de désynchroniser les fichiers et ce que contient le cache du
> dit serveur. Et il y a peut-être d'autres daemons qui pourraient ê tre
> « impactés » ? Bref, ça me paraît bien téméraire de lanc er une telle
> commande globalement sur tout /var.
> dom
Merci de me prévenir, je vais faire très attention en me limitant à d es sous-répertoires
de /var/ ...
andré
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/201310161900.12696.andre_debian@numericable.fr
Le 16 oct. 13 à 15:59, Dominique Asselineau a écrit : > Sébastien NOBILI wrote on Wed, Oct 16, 2013 at 03:11:39PM +0200 >> Quelque chose comme ça ? >> find /var -type f -exec sed -i 's/<expression>//g' {} ; >> Je te conseille de tester ta commande dans un dossier moins >> sensible que /var >> avant de te lancer (et p'têt aussi de t'assurer que tu as une >> bonne sauvegarde >> dans un coin???).
> Et ça n'est pas du tout sûr que ce soit suffisant. Le /var contient > des choses dynamiques, notamment si un serveur SQL tourne avec le > risque de désynchroniser les fichiers et ce que contient le cache du > dit serveur. Et il y a peut-être d'autres daemons qui pourraient ê tre > « impactés » ? Bref, ça me paraît bien téméraire de lanc er une telle > commande globalement sur tout /var. > dom
Merci de me prévenir, je vais faire très attention en me limitant à d es sous-répertoires de /var/ ...
andré
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/