<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=1068511&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=1068511</link>
		<description><![CDATA[Les sujets les plus récents dans [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier.]]></description>
		<lastBuildDate>Mon, 15 Oct 2012 19:40:08 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11133861#p11133861</link>
			<description><![CDATA[<p>Ho, excusez-moi.<br />Je voulais simplifier ma question, mais j&#039;ai du coup pas été assez exact.</p><p>&quot;*&quot; marche très bien, j&#039;essayais avec un &quot;$(ls)&quot; à la place, cela ne fonctionnait pas.<br />Mais en finalité, mon but est de lister des dossier, avec la commande </p><div class="codebox"><pre><code>ls -d1 ./*/</code></pre></div><p>Désolé pour le quiproquo, ta solution était bonne. J&#039;ai cru que tu sous-entendais &quot;remplace * par ton expression du ls&quot;, ben... Je suis allé trop vite en besogne. Pardon ^^</p>]]></description>
			<author><![CDATA[dummy@example.com (Otyugh)]]></author>
			<pubDate>Mon, 15 Oct 2012 19:40:08 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11133861#p11133861</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11128631#p11128631</link>
			<description><![CDATA[<p>Ce n&#039;est pas</p><div class="codebox"><pre><code>for i in &quot;*&quot;; do echo $i; done</code></pre></div><p>mais</p><div class="codebox"><pre><code>for i in *; do echo &quot;$i&quot;; done</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (pingouinux)]]></author>
			<pubDate>Mon, 15 Oct 2012 11:47:52 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11128631#p11128631</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11128281#p11128281</link>
			<description><![CDATA[<div class="codebox"><pre><code>for i in &quot;*&quot;; do echo $i; done</code></pre></div><p>Tout le monde s&#039;accorde à dire que la version de pingouinix était la plus simple, pourtant sur mon terminal, il semble se faire piéger par les espaces.</p><p>L&#039;ajout des guillemets </p><p>Edition :</p><p>...fait que i prend l&#039;intégralité de &quot;*&quot; dans i en une fois (un seul tour dans la boucle).<br />En fait, j&#039;y arrive toujours pas. Je retente vos solutions plus doucement ce soir !</p>]]></description>
			<author><![CDATA[dummy@example.com (Otyugh)]]></author>
			<pubDate>Mon, 15 Oct 2012 11:02:19 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11128281#p11128281</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11127611#p11127611</link>
			<description><![CDATA[<p>Salut,<br />La solution de pingouinux est la meilleure et la plus portable à mon avis. Elle fonctionne en bash, en ksh et en sh. Le développement de * se fait correctement depuis longtemps il me semble. En fait, j&#039;ai jamais vu de cas où ça ne fonctionnait pas.</p><div class="codebox"><pre><code>bash$ touch fic1 &#039;fic 2&#039; &#039;  fic3  &#039; &#039;fic\ 4&#039; &#039;fic
&gt; 5&#039;

bash$ sh
sh$ for fichier in *
&gt; do
&gt;    echo &quot;=&gt;$fichier&lt;=&quot;
&gt; done
=&gt;  fic3  &lt;=
=&gt;fic
5&lt;=
=&gt;fic 2&lt;=
=&gt;fic1&lt;=
=&gt;fic\ 4&lt;=</code></pre></div><p>Le problème de la solution avec la boucle while avec read et find est qu&#039;il faut un find avec l&#039;option -print0 et il faut aussi un read avec les options -d et également -r (sans -r, on perd les \). Il faut aussi modifier la variable IFS, sinon on perd les espaces au début ou à la fin des fichiers :</p><div class="codebox"><pre><code>bash$ while read -d $&#039;\0&#039; fichier
&gt; do
&gt;    echo &quot;=&gt;$fichier&lt;=&quot;
&gt; done &lt; &lt;(find . -type f -print0)
=&gt;./  fic3&lt;=     &lt;= On a perdu des espaces à la fin
=&gt;./fic 4&lt;=      &lt;= Perte de \
=&gt;./fic
5&lt;=
=&gt;./fic1&lt;=
=&gt;./fic 2&lt;=

bash$ while IFS= read -rd $&#039;\0&#039; fichier
&gt; do
&gt; echo &quot;=&gt;$fichier&lt;=&quot;
&gt; done &lt; &lt;(find . -type f -print0)
=&gt;./  fic3  &lt;=
=&gt;./fic\ 4&lt;=
=&gt;./fic
5&lt;=
=&gt;./fic1&lt;=
=&gt;./fic 2&lt;=</code></pre></div><p>Bon, j&#039;avoue que des fichiers avec des blancs au début ou à la fin ou même avec des \, ça court pas les rues !</p>]]></description>
			<author><![CDATA[dummy@example.com (Postmortem)]]></author>
			<pubDate>Mon, 15 Oct 2012 09:36:16 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11127611#p11127611</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11126081#p11126081</link>
			<description><![CDATA[<p>La solution proposée par pingoulinux est la plus simple et la meilleure avec une version récente de bash.</p><p>Voici une solution plus portable :</p><div class="codebox"><pre><code>while read fichier
do
  echo &quot;→${fichier}←&quot;
done &lt; &lt;(find .)</code></pre></div><p>« find . » peut être remplacé par « ls »</p><p>NB. le seul cas où ça ne fonctionne pas est celui pour lequel le fichier comporte un saut de ligne (\n).</p><p>Un palliatif :</p><div class="codebox"><pre><code>while read -d $&#039;\0&#039; fichier
do
  echo &quot;→${fichier}←&quot;
done &lt; &lt;(find . -print0)</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (nesthib)]]></author>
			<pubDate>Mon, 15 Oct 2012 05:09:30 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11126081#p11126081</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125991#p11125991</link>
			<description><![CDATA[<p>Bonjour,</p><div class="codebox"><pre><code>for i in *; do echo &quot;$i&quot;; done</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (pingouinux)]]></author>
			<pubDate>Mon, 15 Oct 2012 04:21:27 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125991#p11125991</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125911#p11125911</link>
			<description><![CDATA[<p>avec les guillemets : </p><div class="codebox"><pre><code> → rob @bscc-01 - /stock/rob/work $ for i in $(ls -d *) ; do echo &quot;$i&quot; ; done
retest
retest
test
test
 → rob @bscc-01 - /stock/rob/work $ for i in &quot;$(ls -d *)&quot; ; do echo &quot;$i&quot; ; done
retest retest
test test</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (bishop.sad.clown)]]></author>
			<pubDate>Mon, 15 Oct 2012 03:46:26 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125911#p11125911</guid>
		</item>
		<item>
			<title><![CDATA[[Résolu]Meilleur moyen d'itérer sur les fichiers d'un dossier]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125761#p11125761</link>
			<description><![CDATA[<p>Bonjour,<br />récemment j&#039;ai voulu faire un traitement sur des fichiers d&#039;un dossier.<br />Seulement voilà : les espaces me foutent tout en l&#039;air.</p><p>for file in $(ls -d1 .)</p><p>S&#039;il y a un fichier &quot;truc muche&quot; dans le dossier courant, la valeur de $file prendra successivement &quot;truc&quot; puis &quot;muche&quot;.<br />Je pensais sauver la journée en mettant ce &quot;1&quot; à ls, forçant les séparations, mais le problème est toujours là. :-/</p><p>Ce problème est assez courant pour que je vois des débuts de réponse, mais rien de bien clean/portable. J&#039;espère que j&#039;ai énoncé correctement ^^</p>]]></description>
			<author><![CDATA[dummy@example.com (Otyugh)]]></author>
			<pubDate>Mon, 15 Oct 2012 01:16:00 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=11125761#p11125761</guid>
		</item>
	</channel>
</rss>
