{"id":40,"date":"2008-03-28T21:05:18","date_gmt":"2008-03-28T20:05:18","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=40"},"modified":"2008-03-28T21:05:18","modified_gmt":"2008-03-28T20:05:18","slug":"effectuer-une-meme-operation-sur-un-ensemble-de-fichiers","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2008\/03\/effectuer-une-meme-operation-sur-un-ensemble-de-fichiers\/","title":{"rendered":"Effectuer une m\u00eame op\u00e9ration sur un ensemble de fichiers"},"content":{"rendered":"<p>Imaginons que vous d\u00e9siriez effectuer une m\u00eame t\u00e2che sur tous les fichiers d&rsquo;un r\u00e9pertoire comme par exemple les compresser avec tar. Imaginons que vous veniez de ripper votre dernier CD pour pouvoir en mettre les chansons en mp3 sur votre baladeur.<\/p>\n<p>Effectuer ces op\u00e9rations \u00e0 la main sur chaque fichier peut vite devenir fastidieux \u00e0 force de chaque fois retaper la m\u00eame commande dans un terminal. Et bien, il y a moyen de simplifier l&rsquo;op\u00e9ration avec quelques commandes  simples en <em>bash<\/em>.<\/p>\n<p>Prenons l&rsquo;exemple du r\u00e9pertoire <em>~\/music<\/em> dans lequel se trouvent les fichiers <em>.wav<\/em> que vous voulez transcoder en mp3. Cette simple commande va rechercher tous les fichiers et les transformer en mp3 gr\u00e2ce \u00e0 <em>lame<\/em> (encodeur mp3):<\/p>\n<pre class=\"codesource\">$  find ~\/music -type f | while read x; do lame -b 192 -h \"$x\"; done<\/pre>\n<p><em>-type f<\/em> indique \u00e0 <em>find<\/em> que vous recherchez des fichiers. Ceux que <em>find<\/em> a trouv\u00e9s vont appara\u00eetre sur sa sortie standard (celle qui est normalement affich\u00e9e \u00e0 l&rsquo;\u00e9cran), un nom de fichier par ligne. La sortie standard de <em>find<\/em> est redirig\u00e9e par le pipe vers l&rsquo;entr\u00e9e standard de <em>read<\/em>. Ces lignes, contenant les noms fichiers trouv\u00e9s par <em>find<\/em>, vont \u00eatre lues par <em>read<\/em> dans une boucle <em>while<\/em> qui sera ex\u00e9cut\u00e9e tant qu&rsquo;il y a des noms de fichiers \u00e0 lire \u00e0 l&rsquo;entr\u00e9e. A chaque fois que la boucle est parcourue, le nom du fichier qui se trouve dans <em>$x<\/em> sera encod\u00e9 en mp3 par <em>lame<\/em>.<\/p>\n<p>Si dans votre r\u00e9pertoire, il risque d&rsquo;y avoir autre chose que des fichiers <em>.wav<\/em>, il serait mieux de dire \u00e0 <em>find<\/em> que ce sont des fichiers <em>.wav<\/em> que vous d\u00e9sirez. Il suffit d&rsquo;une petite modification:<\/p>\n<pre class=\"codesource\">$  find ~\/music -name \\*.wav | while read x; do lame -b 192 -h \"$x\";done<\/pre>\n<p>Au lieu de sp\u00e9cifier \u00e0 <em>find<\/em> que vous rechercher tel type de fichier, vous pouvez lui dire que ce sont les fichiers avec un certain nom qui vous int\u00e9ressent. C&rsquo;est ce qui est fait avec l&rsquo;option <em>-name \\*.wav<\/em>.<\/p>\n<p>Une autre m\u00e9thode pour encoder vos fichiers en une seule fois est d&rsquo;utiliser une boucle <em>for<\/em> tout simplement:<\/p>\n<pre class=\"codesource\">$ for i in *.wav;do lame -b 192 -h \"$i\";done<\/pre>\n<p>Pour g\u00e9n\u00e9raliser ces commandes, il suffit de remplacer la commande <em>lame -b 192 -h<\/em> par ce que vous voulez. Vous pouvez donc utiliser ce principe pour plein de choses diff\u00e9rentes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imaginons que vous d\u00e9siriez effectuer une m\u00eame t\u00e2che sur tous les fichiers d&rsquo;un r\u00e9pertoire comme par exemple les compresser avec tar. Imaginons que vous veniez de ripper votre dernier CD pour pouvoir en mettre les chansons en mp3 sur votre baladeur. Effectuer ces op\u00e9rations \u00e0 la main sur chaque fichier peut vite devenir fastidieux \u00e0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/40"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=40"}],"version-history":[{"count":0,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/40\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=40"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=40"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=40"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}