Ack est un outil qui permet de rechercher du texte à l’intérieur de fichiers. C’est donc un clone de grep
avec quelques améliorations notables. Voici donc dix raisons de passer à ack
si vous utilisez grep
:
- ack est très rapide, car il ne recherche que ce que vous voulez chercher ;
- il recherche récursivement par défaut ;
- il ignore les trucs inutiles, comme les répertoires utilisés par les [VCS], les fichiers de sauvegarde (
« foo~ »
et« #foo# »
), les binaires, etc. ; - vous pouvez spécifier simplement le type de fichiers à rechercher, comme
« --perl »
ou« --nohtml »
; - la coloration syntaxique des résultats est là par défaut ;
- vous pouvez utiliser les expressions régulières de Perl, pas juste le sous‐ensemble de GNU ;
- l’apprentissage d’ack est très simple, car il reprend les mêmes options en ligne de commande que grep (
« -c »
,« -l »
,« -w »
, etc.) ; - il est possible d’avoir des options par défaut dans un fichier
« ~/.ackrc »
; - la commande fait 25 % de caractères en moins à taper ;
- en fait, c’est même 50 % de gagné par rapport à
« grep -r »
.
La version 1.96 d’ack est sortie dimanche et apporte quelques améliorations notables :
- les fichiers JavaScript « minifiés » sont ignorés par défaut ;
- le langage Groovy est supporté (extensions :
« .groovy », « .gtmpl », « .gpp », « .grunit »
) ; - les fichiers Perl et Lua sont mieux détectés.
Note : pour installer ack
sur Debian et Ubuntu, il faut faire un « apt-get install ack-grep »
(et pas juste « ack »). En revanche sous Archlinux, un « pacman -S ack »
sera suffisant. Les autres distributions (Fedora, Gentoo) utilisent également le simple nom « ack »
).
Aller plus loin
- Le site officiel de ack (836 clics)
- Le journal des modifications (41 clics)
- ack sur github (101 clics)
# Commande
Posté par BFG . Évalué à 4.
Je ne suis pas d'accord, ack, c'est 200% de caractères en plus. Peut-être est-ce dû à mon 'alias g="grep -r"'. (et aussi grâce à zsh, avec 'alias -g PG=" | grep "')
[^] # Re: Commande
Posté par windu.2b . Évalué à 4.
J'aurais plutôt contesté le 50% étant donné que « ack » fait 3 caractères, là où « grep -r » en fait 7 (l'espace aussi est à saisir)...
Après, on peut encore plus s'adonner aux joies de la drosophilie, grâce à la complétion des commandes (touche Tab), ce qui peut fait gagner quelques caractères.
[^] # Re: Commande
Posté par oinkoink_daotter . Évalué à 4.
Ou en perdre, si "tab" indique une incertitude, puis une autre, puis ... :)
[^] # Re: Commande
Posté par DerekSagan . Évalué à 2.
Sans parler du fait que A C K sont éloignées sur le clavier alors que G R E se tapent en une seule fois (même avec la tête on y arrive).
Et avec un alias g="grep -r --color" on fait tomber un argument de plus...
;-)
[^] # Re: Commande
Posté par Étienne . Évalué à 2.
Si on tape avec 2 doigts c'est vrai, avec 10 doigts ack se tape avec "auriculaire gauche", "index gauche", "majeur droit", ce qui est plus facile sur un clavier azerty (on alterne les doigts) que "index gauche", "index gauche", "majeur gauche", "annulaire droit" ;)
Étienne
[^] # Re: Commande
Posté par Rémi Hérilier . Évalué à -1.
Avec seulement 5 doigts : 'g' (index gauche), 'r' (majeur gauche), 'e' (annulaire gauche) <tab> (auriculaire gauche) pour avoir le 'p' puis <espace> (pouce gauche).
C'est pas orthodoxe mais ça a un certain esthétisme et ça fait travailler tous les doigts 0:-°
[^] # Re: Commande
Posté par khalahan . Évalué à 0.
L'espace est ajouté automatiquement chez moi avec le (debian), donc 4 doigts :p
[^] # Re: Commande
Posté par goeb . Évalué à 2.
Sous Debian, 'ack' ne fonctionne pas. Il faut taper 'ack-grep'.
Donc c'est plus long que 'grep -r'.
[^] # Re: Commande
Posté par Bruno Michel (site web personnel) . Évalué à 4.
Le site d'ack donne la commande suivante pour l'installer en tant que
ack
:# Il fallait y penser
Posté par Nicolas Dumoulin (site web personnel) . Évalué à 7.
C'est vrai qu'on a tellement (enfin « je », je vous laisse exprimer votre opinion vous-mêmes) tendance à mettre sur un piedestal ces petits outils GNU, qu'on oublierait presque leurs imperfections. En tout cas, on s'accoutume à leurs lacunes et jamais je n'oserai aller voir ailleurs.
Heu, tant qu'on y est, vous n'auriez pas un remplaçant pour find qui soit plus simple à utiliser avec les fichiers avec espaces ? Ha, on me souffle dans l'oreillette que bash c'est bien gentil, mais une vrai plateforme de script c'est quand même plus pratique. Ok, ipython, c'est sympa, mais bash et ses petits copains sont tellement plus concis, rapide, ancrée dans notre culture ancestrale, toussa …
Ce commentaire est terminé, il faut que j'aille voir ce ack de plus près.
Merci pour la dépêche.
[^] # Re: Il fallait y penser
Posté par Matthieu Moy (site web personnel) . Évalué à 8.
ZSH supporte depuis longtemps le wildcard ** qui permet de faire des choses comme
qui marchent nickel avec des espaces, évitent de créer un processus supplémentaire, et répondent à la plupart des besoins courants.
La bonne nouvelle, c'est que bash a la même chose maintenant (depuis la 4.0 je crois), si on utilise « shopt -s globstar ».
[^] # Re: Il fallait y penser
Posté par Bapt (site web personnel) . Évalué à 8.
en zsh il y a encore plus simple:
zargs **/*.c -- commande
tu peux aussi choisir le nombre de processus en parallèle:
--max-procs=max-procs, -P max-procs
le nombre d'arguments à filer à la commande:
--max-args=max-args, -n max-args
et beaucoup plus
Un super xargs quoi mais tu peux le combiner avec les fonctionalités avancées de zsh donc top
pour en bénéficié: autoload -U zargs dans le .zshrc :)
[^] # Re: Il fallait y penser
Posté par zebra3 . Évalué à 10.
Je te conseille xargs, très bon complément à find et à nombre d'outils GNU (j'apprécie en particulier la possibilité de lancer des commandes en parallèle).
Petit exemple pour extraire toutes les archives ZIP sans se soucier des noms, et pour deux archives en même temps :
La manpage de xargs a changé ma vie.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Il fallait y penser
Posté par CrEv (site web personnel) . Évalué à 10.
Et moi qui croyait qu'on cherchait à avoir un outil simple à utiliser...
[^] # Re: Il fallait y penser
Posté par zebra3 . Évalué à 9.
Oui bon, j'ai tellement l'habitude que ça me paraît excessivement simple, mais je dois confondre avec « concis » :-)
Petite explication de texte :
N'empêche qu'après avoir lu la doc, c'est tout de même relativement simple (en tout cas plus que des boucles ou d'autres structures à faire en shell)
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Il fallait y penser
Posté par zebra3 . Évalué à 2.
J'oublais : la demande était « remplaçant pour find qui soit plus simple à utiliser avec les fichiers avec espaces ».
De ce point de vue, quand on voit comment find est ch*ant avec les noms à espace, c'est bel et bien plus simple :-)
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Il fallait y penser
Posté par sifu . Évalué à 4.
De mémoire, il y a aussi une commande exec sur le find.
[^] # Re: Il fallait y penser
Posté par fearan . Évalué à 4.
en même temps les 3/4 de sa commande sont inutile :
sachant que si tu limite à un seul argument il vaut mieux utiliser le -exec de find; le -P 2 sert à préciser le nombre de processus et tu peux avoir des alias pour couvrir les cas courants.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: Il fallait y penser
Posté par barmic . Évalué à 2.
C'est malheureusement un truc que find ne fait pas tout seul (lancer les exec sans attendre leur retour), peut être que ça peut s'obtenir comme ça :
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Il fallait y penser
Posté par Marotte ⛧ . Évalué à 2.
En quoi c'est chiant les noms de fichier avec des espaces pour find ?
Il ne suffit pas d'utiliser des guillemets pour ne pas être emmerdé ?
[^] # Re: Il fallait y penser
Posté par NanoTech . Évalué à 1.
Les guillemets n'avancent à rien
$ commande $(find /dir)
-> Problème avec les espaces
$ commande "$(find /dir)"
-> Encore pire, concatène tous les noms de fichiers en un seul
$ find /dir|xargs commande
-> Problème avec les retours charriot dans les noms de fichiers. Il faut être fou pour en mettre, mais un BON outil doit gérer.
$ find /dir -print0|xargs -0 commande
-> Gère correctement tous les noms de fichiers.
[^] # Re: Il fallait y penser
Posté par Arthur Accroc . Évalué à 1.
Si /dir contient un très grand nombre de fichiers, tu auras surtout « line too long » pour ta commande, à moins d’utiliser l’option -n nombre_d_arguments de xargs pour lancer une commande tous les nombre_d_arguments.
Et tu n’as jamais de « line too long » ?
Pour ma part, j’utilise gnéralement
$ find /dir -exec commande {} \;
Je n’ai jamais eu de problème avec.
Cela dit, ça lance une commande par fichier, mais tu peux placer l’argument où tu veux dans la commande, voire le répéter (avec le find de GNU, tous ne le supportent pas) ; par exemple :
$ find . -type f -exec cmp {} /backup_du_repertoire_courant/{} \;
(faire attention au répertoire de base choisi : ça ne préviendra pas s’il manque un fichier dans le répertoire courant par rapport à /backup_du_repertoire_courant).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Il fallait y penser
Posté par NanoTech . Évalué à 0.
Non, je n'ai jamais ça. Par défaut xargs découpe automatiquement la ligne en plusieurs si elle est trop longue.
Par contre, ça peut avoir une importance pour les commandes qui ne traitent pas tous leur paramètres de la même manière.
En effet, ça marche très bien.
L'objectif de mon commentaire était juste de montrer que les guillemets ne résolvent pas les problèmes d'espace, rien de plus.
[^] # Re: Il fallait y penser
Posté par fearan . Évalué à 4.
Attention! grep n'est pas forcément GNU, c'est POSIX.2, et il est tout à fait possible de forcer le comportement a du posix.2 via la variable POSIXLY_CORRECT. Il est aussi possible d'avoir des options par défaut via la variable GREP_OPTIONS, et une bonne partie des options par défaut de ack sont possible (--exclude=PATTERN... --include=PATTERN...)
L'avantage de scripter avec les commandes posix, c'est que c'est portable ensuite sur n'importe quel environnement posix, et que via des alias on peut via un fichier de conf récupérer tout ce qu'on aime. )
L'inconvénient est de figer les possibilité à ce que permet la norme.
pour find et xargs généralement j'utilise
find . -print0 ... | xargs -0 ...
Ou plus généralement des fonctions bash (find0) et un alias xarg0 qui me mettent les paramètres comme il faut ;) j'ai pas encore trouver comment faire des alias avec des mélanges de paramètres .
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# Argument
Posté par hugo (site web personnel) . Évalué à 10.
C'est pas un argument ça...
J'en déduit que les concurrents ne recherchent pas ce que je veux ?
Et Omo ? il lave plus blanc que blanc ?
[^] # Re: Argument
Posté par calandoa . Évalué à 6.
J'ai été moyen convaincu par l'argument, donc j'ai comparé avec un gros répertoire de dev plein de .svn :
Résultat triés :
Y a pas à chier, pour mon utilisation habituelle, ack est bien plus rapide. Je ne connaissais pas, merci!
[^] # Re: Argument
Posté par dr_home . Évalué à 1.
Et avec "export LC_ALL=C", ça donne quoi ? (en recherche 8bits le GNU grep est vraiment très très bon...)
[^] # Re: Argument
Posté par calandoa . Évalué à 2.
Globalement, même résultats, just ack qui est un peu plus lent.
[^] # Re: Argument
Posté par jeberger (site web personnel) . Évalué à 2.
Surprenant. Chez moi, grep pulvérise ack complètement:
(tout dans le même répertoire, les deux premières commandes sont visiblement plus lentes à cause des accès disques, les suivantes trouvent tout dans les caches)
[^] # Re: Argument
Posté par Samuel Thibault (site web personnel) . Évalué à 1.
€ echo $GREPOPTIONS --color=auto --exclude=..swp --exclude=__* --exclude=.del-* --exclude=tags --exclude=.svn Pas besoin de passer à ack.
[^] # Re: Argument
Posté par calandoa . Évalué à 2.
Même résultats... j'ai aussi essayé -I, pas de grosses différences. J'avoue être assez intrigué par la raison de cette différence entre ack et grep, alors qu'avec les bonnes options grep devrait être plus rapide.
[^] # Re: Argument
Posté par Étienne . Évalué à 3.
Je pense que la grosse différence c'est que ack ne scanne que les fichiers qu'il connait, par exemple il ne scanne pas les fichiers sans extension. Sur ma machine quand je lance ack dans /etc il me scanne 381 fichiers (1981 avec un ack -a qui continue à en louper plein) là où grep m'en scanne 7535.
C'est d'ailleurs un des pièges de ack qui, rappelons le, n'est pas un outil généraliste, on peut passer à côté de fichiers qu'il ne scanne pas sans s'en rendre compte.
Étienne
[^] # Re: Argument
Posté par sifu . Évalué à 1.
Si avec le -a, on loupe des trucs, je trouve cela inquiétant ...
[^] # Re: Argument
Posté par SamG . Évalué à 1.
Je pense qu'il faut utiliser -u
# C'est différent de grep
Posté par Étienne . Évalué à 10.
Dire que ack est mieux que grep c'est comme dire que la carte au 25000ème est mieux que la carte au 500000ème, c'est vrai pour la randonnée, pas pour traverser une région. Ack est un outil plus spécialisé que grep et pour une activité de codage est plus adapté que grep (comme rappelé, le fait qu'il ignore les répertoires de VCS ou les fichiers de sauvegarde, qu'il connaisse les types de fichiers et permette de filtrer dessus).
Si on veux faire un grep dans tout /etc par exemple, grep sera plus rapide que ack (le point 1 de la dépêche veut en fait dire : "ack est plus lent que grep pour le matching mais il compense en ne cherchant pas dans tous les fichiers", c'est intéressant si on ne veut pas chercher dans tous les fichiers).
Voilà c'était juste pour tempérer la remarque "mieux que grep", je l'utilise personnellement en remplacement de grep pour mes activités de codage, mais je n'ai pas pour autant remisé grep au placard.
Sinon merci pour la dépêche, ack mérite d'être un peu plus connu.
Étienne
# git grep
Posté par Matthieu Moy (site web personnel) . Évalué à 8.
En fait, la plupart des ces arguments s'appliquent aussi à « git grep » (pour peu qu'on utilise Git, mais franchement, qui utiliserait autre chose de nos jours ;-) ) :
Ceci dit, y'a l'air d'y avoir des trucs rigolos dans ack, comme le --perl qui regarde le shebang du fichier pour savoir si c'est du perl, ou
qui fait grosso-modo un
[^] # Re: git grep
Posté par windu.2b . Évalué à 4.
La bonne question est plutôt de savoir qui n'utilise pas un (D)VCS de nos jours ? La réponse est : lui !
[^] # Re: git grep
Posté par Naha (site web personnel) . Évalué à 3.
qui fait grosso modo un
[^] # RCS, sinon quoi ?
Posté par Arthur Accroc . Évalué à 1.
J’utilise RCS (qu’est-ce que j’ai gagné ?).
Bon, c’est pour versionner les fichiers de configuration du système en étant sûr de pouvoir y accéder dans les conditions les plus hostiles : pas de réseau, système complètement HS (donc accès depuis un autre système ou un Live CD).
Si quelqu’un connaît un DVCS qui peut supporter de telles conditions, ça peut m’intéresser...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: RCS, sinon quoi ?
Posté par wismerhill . Évalué à 7.
Ben, c'est possible avec tous, puisque justement dans un DVCS tu a une copie locale complète du repository.
Et si tu n'a pas besoin de recentraliser, ça se fait aussi bien avec CVS ou subversion, il suffit d'avoir le repository dans un répertoire à côté et d'y accéder directement en fichier sans passer par un protocol réseau.
[^] # Re: RCS, sinon quoi ?
Posté par Arthur Accroc . Évalué à 1.
Bonne remarque, merci.
Autre question : y a-t-il des DVCS qui soient capables de restaurer les fichiers avec leurs permissions, propriétaires, voire ACL ?
Quand à CVS et Subversion, mon but était justement de sauter cette étape en attendant que les DVCS soient suffisamment mûrs. Mon problème, maintenant, c’est d’en choisir un. Darcs a l’air plus souple que les autres dans certaines situations, Mercurial a l’air plus facile à utiliser, Git est le plus utilisé (et peut-être plus performant que les deux autres, mais ce n’est pas très important pour ce que j’ai a en faire).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: RCS, sinon quoi ?
Posté par herodiade . Évalué à 4.
Pour ton cas d'utilisation, je recommande chaudement etckeeper (http://kitenet.net/~joey/code/etckeeper/) combiné avec git.
Très bien fichu, etckeeper s'occupe de tout les détails spécifique au versionning de /etc de façon automatique et bien pensée. Il n'oublira pas par exemple de :
Concernant ta question, la doc d'etckeeper indique par exemple :
> "Among other chores,
etckeeper init
sets up apre-commit
hook that stores metadata about file owners and permissions into a/etc/.metadata
file. This metadata is stored in version control along with everything else, and can be applied if the repo should need to be checked back out."[^] # Re: RCS, sinon quoi ?
Posté par zebra3 . Évalué à 3.
Pour les ACL je ne sais pas, mais les permissions et propriétaire Git sait faire.
La preuve, c'est que lorsque tu les modifies (sans toucher au contenu), un git status te l'affiche et tu peux le commiter.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: RCS, sinon quoi ?
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
???
Git ne gère que le bit « executable ». Le format de stockage permettrait de stocker les bits r et w, mais en pratique, il n'utilise que les modes 755 et 644, puisque c'était plutôt contre-productif de gérer r et w dans un outil prévu pour gérer des sources (je crois que les toutes premières versions le faisaient, et ça a été supprimé).
Le propriétaire, là, je demande à voir, y'a rien qui permette de stocker ça dans les structures « tree » de Git.
# Merci
Posté par MrBidon . Évalué à 1.
La lecture de ce journal m'a fait prendre conscience que j'en avais un peu marre des inconvénients de grep (le fait qu'il fouille automatiquement dans les fichiers des VCS / DVCS principalement), j'ai donc sauté sur cet outil. Très facile à installer :
curl http://betterthangrep.com/ack-standalone > ~/bin/ack && chmod 0755 !#:3
Petite question tant qu'on y est, comment peut-t-on configurer le bouzin pour qu'il n'ignore pas les fichiers de backup ?
Encore merci du tuyau,
[^] # Re: Merci
Posté par gnumdk (site web personnel) . Évalué à 5.
Mwarf !!!
$ pacman -S ack ?
J'imagine que toute distrib digne de ce nom doit permettre la meme chose...
$ apt-get install ack-grep
[^] # Re: Merci
Posté par gnumdk (site web personnel) . Évalué à 2.
Ok, la prochaine fois je lirai les dépêches jusqu'au bout !
# Intérêt ?
Posté par Sathors . Évalué à 3.
Personnellement je ne vois pas vraiment les avantages listés comme des choses décisives, et après pour les options que j'utilise souvent il y a toujours les alias donc bon ...
Mais après si je n'en ressens aucunement le besoin c'est que je ne dois pas utiliser grep suffisamment (n'étant pas admin système) !
# Hum
Posté par martoni (site web personnel, Mastodon) . Évalué à -1.
Me donne
Visiblement il y a une collision dans le nom du programme sur ubuntu ;)
J'ai plus qu'une balle
[^] # Re: Hum
Posté par martoni (site web personnel, Mastodon) . Évalué à 6.
Il suffisait d'aller faire un petit tour sur le site, pour savoir que le packet s'appel :
ack-grep
;)
J'ai plus qu'une balle
[^] # Re: Hum
Posté par ZeroHeure . Évalué à 8.
Relis la dépêche. Relis en particulier la petite note qu'en Gentil Modérateur (GM) a pris la peine d'ajouter.
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: Hum
Posté par Juke (site web personnel) . Évalué à 1.
ack-grep sous debian
[^] # Re: Hum
Posté par windu.2b . Évalué à 0.
D'où, sans doute, la raison du nom "ack-grep". Faut croire que les empaqueteurs n'ont pas fait le travail jusqu'au bout...
[^] # Re: Hum
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
Le paquet existant avant le ack en perl, ils l'ont nommé ack-grep ! Le choix n'est jamais facile à faire.
# remplaçant de glimpse ?
Posté par Jean-Max Reymond (site web personnel) . Évalué à 1.
Tant qu'on est dans la problématique grep, il n'existe pas AMHO d'équivalent open source du fantastique glimpse qu'on arrive toujours à trouver tant bien que mal sur le Web. L'utilisation de glimpse commence par glimpseindex qui va parcourir les répertoires spécifiés pour stocker tous les mots dans des fichiers et ensuite, la commande glimpse, avec des expressions régulières, permet de retrouver instantanément les occurrences des chaines de caractères. C'est ultra-pratique, pour ne pas dire indispensable, quand on travaille sur un très gros logiciel.
[^] # Re: remplaçant de glimpse ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
C'est un genre de cscope ?
"La première sécurité est la liberté"
[^] # Re: remplaçant de glimpse ?
Posté par enikar . Évalué à 1.
il existe aussi les id-utils, c'est une sorte d'indexer plutôt penser
pour les fichiers sources. On fait un mkid dans un répertoires, il visite
tous les sous répertoires et fait une base nommée ID par défaut. Ensuite on
fait des recherches avec lid . Les id-utils sont plus faits pour les fichiers sources mais pas seulement.
# Similaire à glark ?
Posté par FlashCode (site web personnel, Mastodon) . Évalué à 2.
J'avais découvert et testé recemment glark, qui ressemble beaucoup à ack. Quelqu'un connait les différences entre les deux (hormis le fait que glark soit écrit en ruby et ack en perl) ?
http://www.incava.org/projects/glark
WeeChat, the extensible chat client
# Alternatives
Posté par jbbourgoin (site web personnel) . Évalué à 2.
Il est vrai que nous avons tendances à ignorer les alternatives aux outils Unix classiques (ou aux dérivés de chez GNU).
Ce qui me fait poser la question suivante : existe-t-il une liste à jour d'outils alternatifs à ces classiques ? (find, grep, head etc.)
[^] # Re: Alternatives
Posté par Juke (site web personnel) . Évalué à 6.
Emacs ?
[^] # Re: Alternatives
Posté par CrEv (site web personnel) . Évalué à 7.
Ce serait plutôt la réponse à : existe-t-il une alternative à une distribution GNU/Linux ?
[^] # Re: Alternatives
Posté par Sygne (site web personnel) . Évalué à 1.
On peut au moins retrouver les outils originaux.
-->[]
[^] # Re: Alternatives
Posté par gnumdk (site web personnel) . Évalué à 4.
Pour un raison simple, tu n'est pas tjs admin de la machine sur laquelle tu bosses, alors autant prendre l'habitude d'utiliser des outils que tu trouves partout et pas te manger des "command not found" .
[^] # Re: Alternatives
Posté par jbbourgoin (site web personnel) . Évalué à 2.
Certes, mais ça ne répond pas à la question.
Quand je suis admin de ma machine, j'ai le droit d'installer les logiciels qu'un tier ne voudrait pas non ?
[^] # Re: Alternatives
Posté par barmic . Évalué à 3.
J'utilise zsh en login shell depuis quelques années et je suis encore loin d'utiliser toutes ses possibilités. Un exemple que j'aime bien c'est ce script par exemple qui ne fait aucun appel aux classiques grep/sed/awk/… :
http://pastebin.com/A2d4Js5W
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# Autres commandes du même type
Posté par alberthier (site web personnel) . Évalué à 4.
Il existe des clones de cette commande en python et en ruby :
rak pour ruby et grin pour python
Ces deux programmes ont globalement la même fonction. Perso j'utilise grin
[^] # Re: Autres commandes du même type
Posté par barmic . Évalué à 5.
C'est beau.
Ce qui est bien avec le libre, c'est de pouvoir travailler en collaboration (c'est vrai on dit toujours que dans du libre on peut corriger et améliorer les programmes) ^^
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# grin... pas dans debian ?
Posté par FlashCode (site web personnel, Mastodon) . Évalué à 0.
Dommage, grin ne semble pas être dans debian, y compris sid (ou bien l'aurais-je raté ?)
WeeChat, the extensible chat client
[^] # Re: grin... pas dans debian ?
Posté par Guillaume Denry (site web personnel) . Évalué à -1.
Tu l'as raté.
http://packages.debian.org/fr/sid/ack-grep
[^] # Re: grin... pas dans debian ?
Posté par barmic . Évalué à 2.
sauf qu'il parlait de grin …
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: grin... pas dans debian ?
Posté par Guillaume Denry (site web personnel) . Évalué à 5.
Mortel, j'ai cru que "grin" était juste une onomatopée dans son commentaire :)
# git grep
Posté par bilboa . Évalué à 1.
git grep > ack > grep
grep pour le grep "generique" vu que ack fait comme git grep et .. heu..ben git grep étant inclus dans git, voila, voila
[^] # Re: git grep
Posté par barmic . Évalué à 8.
"git grep" a un inconvénient de taille, il faut utiliser git, donc il ne s'utilise pas dans tout un tas de cas d'utilisations.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# grep -r
Posté par Brice Goglin . Évalué à 1.
man rgrep
# UUOG
Posté par Sylvain Sauvage . Évalué à 3.
Déjà, si après le UUOC, on pouvait lancer un UUOG(rep) pour tous ceux qui tubent des greps avec des sed ou des awk…
Exemples :
grep toto | sed 'bla'
→sed '/toto/ bla'
grep toto | awk '{bla}'
→awk '/toto/ {bla}'
Et si vous trouvez que grep ne va pas assez vite, essayez l’option -F pour les recherches de chaînes simples, ou de préfixer avec
LANG=C
pour contourner la lente gestion d’UTF-8.[^] # Re: UUOG
Posté par lasher . Évalué à 3.
Déjà si on pouvait expliquer aux gens qui utilisent toujours sed et awk que Perl fait la même chose avec un seul outil... voila voila...
--> [ ]
[^] # Re: UUOG
Posté par Thierry Thomas (site web personnel, Mastodon) . Évalué à 4.
Bah, ceux qui utilisent sed et awk (simultanément) pourraient déjà ne garder qu'awk !
# sinon, il y a agrep aussi
Posté par zaurus (site web personnel) . Évalué à 1.
C'est une version de grep qui gere un certain nombre d'erreurs dans le motif recherche.
La classe quoi. ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.