scratch/output/Scratch/fr/blog/02_ackgrep/index.html
2011-12-07 16:40:03 +01:00

216 lines
No EOL
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" type="image/x-icon" href="/Scratch/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/main.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocomfr"/>
<link rel="alternate" lang="fr" xml:lang="fr" title="Mieux que grep" type="text/html" hreflang="fr" href="/Scratch/fr/blog/02_ackgrep/" />
<link rel="alternate" lang="en" xml:lang="en" title="Better than Grep" type="text/html" hreflang="en" href="/Scratch/en/blog/02_ackgrep/" />
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/Scratch/js/index.js"></script>
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<title>Mieux que grep</title>
</head>
<body lang="fr" class="article">
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="Chargement en cours..."/></div>');
// ]]>
</script>
<div id="content">
<div id="choix">
<div class="return"><a href="#entete">&darr; Menu &darr;</a></div>
<div id="choixlang">
<a href="/Scratch/en/blog/02_ackgrep/" onclick="setLanguage('en')">in English</a>
</div>
<div class="flush"></div>
</div>
<div id="titre">
<h1>
Mieux que grep
</h1>
</div>
<div class="flush"></div>
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
<h1 class="first" id="mise--jour">Mise à jour</h1>
<p>Comme <a href="http://www.theworkinggeek.com">Andy Lester</a> me la fait remarqué. <a href="http://betterthangrep.com"><code>ack</code></a> est un simple fichier perl quil suffit de copier dans son répertoire personnel <code>~/bin</code>. Maintenant jai <code>ack</code> sur mon serveur professionnel.</p>
<p>Il suffit daller sur <a href="http://betterthangrep.com">http://betterthangrep.com</a> pour le télécharger.</p>
<p>Sincèrement, je ne comprend pas qu<code>ack</code> ne soit pas une commande implémentée par défaut sur les systèmes UNIX. Je ne peux vraiment plus men passer, il mest devenu aussi essentiel quun <code>which</code> ou un <code>find</code>.</p>
</div>
<div class="corps">
<h1 class="first" id="mieux-que-grep">Mieux que grep</h1>
<p>Un des mes usages principaux de <code>grep</code> est</p>
<div>
<pre class="twilight">
grep <span class="String"><span class="String">'</span>pattern<span class="String">'</span></span> **/*(.)
</pre>
</div>
<p>La plupart du temps cest suffisant, mais ajouter de la coloration
améliore beaucoup lutilité de cette commande. Il existe déjà un outil
pour ça&nbsp;: il sappelle <code>ack-grep</code> sous Ubuntu.
Comme je ne peux pas linstaller sur le serveur de mon entreprise,
jen ai créé un moi-même en quelques lignes&nbsp;:</p>
<div>
<div class="code"><div class="file"><a href="/Scratch/fr/blog/02_ackgrep/code/ack"> &#x27A5; ack </a></div><div class="withfile">
<pre class="twilight">
<span class="Comment"><span class="Comment">#</span>!/usr/bin/env zsh</span>
((<span class="Variable"><span class="Variable">$</span>#</span><span class="Keyword">&lt;</span>1)) <span class="Keyword">&amp;&amp;</span> { print <span class="String"><span class="String">'</span>usage: ack &quot;regexp&quot;<span class="String">'</span></span> <span class="Keyword">&gt;&amp;2</span><span class="Keyword">;</span> exit 1 }
listeFic=( **/*(.) )
autoload zargs
zargs -- <span class="Variable"><span class="Variable">$</span>listeFic</span> -- grep <span class="Variable"><span class="Variable">$</span>1</span> <span class="Keyword">|</span> perl -ne <span class="String"><span class="String">'</span>use Term::ANSIColor;</span>
<span class="String">if (m/([^:]*)(:.*)(<span class="String">'</span></span><span class="Variable"><span class="Variable">$</span>1</span><span class="String"><span class="String">'</span>)(.*)/) {</span>
<span class="String"> print color(&quot;green&quot;).$1;</span>
<span class="String"> print color(&quot;reset&quot;).$2;</span>
<span class="String"> print color(&quot;black&quot;,&quot;on_yellow&quot;).$3;</span>
<span class="String"> print color(&quot;reset&quot;).$4.&quot;\n&quot;;</span>
<span class="String">} <span class="String">'</span></span>
</pre>
</div></div>
</div>
<p>Pour mon utilisation personnelle et celle de mon équipe
cest suffisant. Jespère que ça pourra vous aider.</p>
</div>
<div id="choixrss">
<a id="rss" href="http://feeds.feedburner.com/yannespositocomfr">
s'abonner
</a>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('<div id="clickcomment">Commentaires</div>');
</script>
<div class="flush"></div>
<div class="corps" id="comment">
<h2 class="first">commentaires</h2>
<noscript>
Vous devez activer javascript pour commenter.
</noscript>
<script type="text/javascript">
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/fr/blog/02_ackgrep/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/fr/blog/02_ackgrep/';
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
</div>
<div id="entete" class="corps_spaced">
<div id="liens">
<ul><li><a href="/Scratch/fr/">Bienvenue</a></li>
<li><a href="/Scratch/fr/blog/">Blog</a></li>
<li><a href="/Scratch/fr/softwares/">Softwares</a></li>
<li><a href="/Scratch/fr/about/">À propos</a></li></ul>
</div>
<div class="flush"></div>
<hr/>
<div id="next_before_articles">
<div id="previous_articles">
articles précédents
<div class="previous_article">
<a href="/Scratch/fr/blog/01_nanoc/"><span class="nicer">«</span>&nbsp;nanoc</a>
</div>
</div>
<div id="next_articles">
articles suivants
<div class="next_article">
<a href="/Scratch/fr/blog/03_losthighway/">Lost Highway démystifié (un peu)&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/04_drm/">Les protections anti-copies sont LE MAL&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/fr/blog/05_git_create_remote_branch/">Création de branches externe avec Git&nbsp;<span class="nicer">»</span></a>
</div>
</div>
<div class="flush"></div>
</div>
</div>
<div id="bottom">
<div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.fr">Droits de reproduction ©, Yann Esposito</a>
</div>
<div id="lastmod">
Écrit le : 22/07/2009
modifié le : 09/05/2010
</div>
<div>
Site entièrement réalisé avec
<a href="http://www.vim.org">Vim</a>
et
<a href="http://nanoc.stoneship.org">nanoc</a>
</div>
<div>
<a href="/Scratch/fr/validation/">Validation</a>
<a href="http://validator.w3.org/check?uri=referer"> [xhtml] </a>
.
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"> [css] </a>
.
<a href="http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/fr/blog/feed/feed.xml">[rss]</a>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>