Bon, ca peut paraitre un peu HS, étant donné que ca cible pas
spécialement debian, mais en espérant que des bonnes âmes répondent :)
Voila, j'ai été confronté à un problème en voulant faire un script bash
concernant les espaces et les retours de lignes.
Pour faire simple, j'ai voulu faire un script qui permette d'effacer les
Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais
je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas
mon problème de bash).
Donc je fais un "find ./ -name Thumbs.db > a_virer".
Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être
interprétés comme un "passage à l'élément suivant" dans la déclaration
du tableau.
C'est un exemple, mais j'ai eu le même problème dans un autre script.
Quelqu'un saurait-il comment gérer ce problème ?
D'avance merci.
--
Pierre
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
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
François Schoubben
Pierre Mauduit a écrit :
Bonjour la liste,
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas spécialement debian, mais en espérant que des bonnes âmes répondent :) [...] Pour faire simple, j'ai voulu faire un script qui permette d'effacer les Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas mon problème de bash).
Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
et un $... rm -i "$i"; done ?
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la déclaration du tableau.
c'est dans rm ça...
D'avance merci.
J'espère que ça marche...
-- Francois
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Pierre Mauduit a écrit :
Bonjour la liste,
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas
spécialement debian, mais en espérant que des bonnes âmes répondent :)
[...]
Pour faire simple, j'ai voulu faire un script qui permette d'effacer les
Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais
je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas
mon problème de bash).
Donc je fais un "find ./ -name Thumbs.db > a_virer".
Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
et un
$... rm -i "$i"; done
?
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être
interprétés comme un "passage à l'élément suivant" dans la déclaration
du tableau.
c'est dans rm ça...
D'avance merci.
J'espère que ça marche...
--
Francois
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas spécialement debian, mais en espérant que des bonnes âmes répondent :) [...] Pour faire simple, j'ai voulu faire un script qui permette d'effacer les Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas mon problème de bash).
Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
et un $... rm -i "$i"; done ?
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la déclaration du tableau.
c'est dans rm ça...
D'avance merci.
J'espère que ça marche...
-- Francois
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
Comput unicum 1113839153 (Mon, 18 Apr 2005 17:45:53 +0200), Pierre Mauduit a écrit :
Bonjour la liste,
Bonjour,
[...] Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done" Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la dé claration du tableau.
C'est un exemple, mais j'ai eu le même problème dans un autre script. Quelqu'un saurait-il comment gérer ce problème ?
find . -name Thumbs.db -print0 | xargs -0 rm
Le -print0 demande une sortie avec des chaînes terminées par le caract ère 0 (comme en C), ce qui fait que les espaces sont traités comme des caractères normaux. xargs récupère la liste sous cette forme grâce au -0.
-- Sylvain Sauvage
Comput unicum 1113839153 (Mon, 18 Apr 2005 17:45:53 +0200),
Pierre Mauduit a écrit :
Bonjour la liste,
Bonjour,
[...]
Donc je fais un "find ./ -name Thumbs.db > a_virer".
Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être
interprétés comme un "passage à l'élément suivant" dans la dé claration
du tableau.
C'est un exemple, mais j'ai eu le même problème dans un autre script.
Quelqu'un saurait-il comment gérer ce problème ?
find . -name Thumbs.db -print0 | xargs -0 rm
Le -print0 demande une sortie avec des chaînes terminées par le caract ère
0 (comme en C), ce qui fait que les espaces sont traités comme des
caractères normaux. xargs récupère la liste sous cette forme grâce au -0.
Comput unicum 1113839153 (Mon, 18 Apr 2005 17:45:53 +0200), Pierre Mauduit a écrit :
Bonjour la liste,
Bonjour,
[...] Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done" Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la dé claration du tableau.
C'est un exemple, mais j'ai eu le même problème dans un autre script. Quelqu'un saurait-il comment gérer ce problème ?
find . -name Thumbs.db -print0 | xargs -0 rm
Le -print0 demande une sortie avec des chaînes terminées par le caract ère 0 (comme en C), ce qui fait que les espaces sont traités comme des caractères normaux. xargs récupère la liste sous cette forme grâce au -0.
-- Sylvain Sauvage
ludo
Le lundi 18 avril 2005 à 17:45 +0200, Pierre Mauduit a écrit :
Bonjour la liste,
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas spécialement debian, mais en espérant que des bonnes âmes répondent :)
Voila, j'ai été confronté à un problème en voulant faire un script bash concernant les espaces et les retours de lignes.
Pour faire simple, j'ai voulu faire un script qui permette d'effacer les Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas mon problème de bash).
find ./ -name Thumbs.db -exec rm {} ; {} représente chaque éléments trouvés man find permet de se souvenir.
Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done" Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la déclaration du tableau.
tu peux directement faire : for i in `find ./ -name Thumbs` do rm $i done Avec un '>' tu écrase le fichier à chaque éléments trouvé, il faudrait plutôt faire un >> a_virer
C'est un exemple, mais j'ai eu le même problème dans un autre script. Quelqu'un saurait-il comment gérer ce problème ?
D'avance merci.
-- Pierre
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Le lundi 18 avril 2005 à 17:45 +0200, Pierre Mauduit a écrit :
Bonjour la liste,
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas
spécialement debian, mais en espérant que des bonnes âmes répondent :)
Voila, j'ai été confronté à un problème en voulant faire un script bash
concernant les espaces et les retours de lignes.
Pour faire simple, j'ai voulu faire un script qui permette d'effacer les
Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais
je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas
mon problème de bash).
find ./ -name Thumbs.db -exec rm {} ;
{} représente chaque éléments trouvés
man find permet de se souvenir.
Donc je fais un "find ./ -name Thumbs.db > a_virer".
Ensuite, un "for i in `cat a_virer`;do rm -i $i;done"
Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être
interprétés comme un "passage à l'élément suivant" dans la déclaration
du tableau.
tu peux directement faire :
for i in `find ./ -name Thumbs`
do
rm $i
done
Avec un '>' tu écrase le fichier à chaque éléments trouvé, il faudrait
plutôt faire un >> a_virer
C'est un exemple, mais j'ai eu le même problème dans un autre script.
Quelqu'un saurait-il comment gérer ce problème ?
D'avance merci.
--
Pierre
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le lundi 18 avril 2005 à 17:45 +0200, Pierre Mauduit a écrit :
Bonjour la liste,
Bon, ca peut paraitre un peu HS, étant donné que ca cible pas spécialement debian, mais en espérant que des bonnes âmes répondent :)
Voila, j'ai été confronté à un problème en voulant faire un script bash concernant les espaces et les retours de lignes.
Pour faire simple, j'ai voulu faire un script qui permette d'effacer les Thumbs.db dont windows raffole. Je sais que find intégre un -exec, mais je ne sais plus exactement comment ca fonctionne (et ca ne résoud pas mon problème de bash).
find ./ -name Thumbs.db -exec rm {} ; {} représente chaque éléments trouvés man find permet de se souvenir.
Donc je fais un "find ./ -name Thumbs.db > a_virer". Ensuite, un "for i in `cat a_virer`;do rm -i $i;done" Mais voila ca ne fonctionne pas, parce que les espaces ont l'air d'être interprétés comme un "passage à l'élément suivant" dans la déclaration du tableau.
tu peux directement faire : for i in `find ./ -name Thumbs` do rm $i done Avec un '>' tu écrase le fichier à chaque éléments trouvé, il faudrait plutôt faire un >> a_virer
C'est un exemple, mais j'ai eu le même problème dans un autre script. Quelqu'un saurait-il comment gérer ce problème ?
D'avance merci.
-- Pierre
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact