Je suis un utilisateur Linux depuis un certain temps et j'ai une bonne compréhension de la plupart des utilitaires de ligne de commande courants. Cependant, ceux qui reviennent et reviennent en relation avec la programmation sont grep
, awk
et sed
.
À propos de la seule chose pour laquelle j'ai utilisé grep, il y a des tuyaux pour trouver des fichiers dans les fichiers journaux, la sortie de ps
etc. Je n'ai pas utilisé awk
ou sed
du tout. Existe-t-il de bons didacticiels pour ces utilitaires?
AWK est particulièrement bien adapté aux données tabulaires et a une courbe d'apprentissage plus faible que certaines alternatives.
AWK: un tutoriel et une introduction
ne introduction AWK ( lien alt )
info sed
, info grep
et info awk
ou info gawk
Le livre O'Reilly sed and awk est idéal pour er sed et awk.
J'ai écrit un livre sur sed
— Guide définitif de sed - qui comprend un tutoriel. Il couvre entièrement sed
, ainsi que les commandes associées comme grep
, tr
, head
et tail
. Couvre également bien mieux les expressions régulières que ce que j'ai vu ailleurs.
Je suis d'accord avec d'autres pour dire qu'une bonne compréhension des expressions régulières est très importante. Je conviens également que sed
est mieux utilisé pour des tâches plus simples, les scripts plus complexes deviennent rapidement obscurs.
Je ne suis pas d'accord que awk
est obsolète, bien au contraire. C'est comme beaucoup de choses Unix (par exemple, vi
), il y a une courbe d'apprentissage, mais ça vaut le coup.
Je ne suis pas d'accord avec la suggestion d'utiliser awk
à la place de grep
. Cela n'a pas de sens dans mon expérience. grep
est tellement génial et simple.
Le livre de recettes d'expressions régulières publié par O'Rielly serait suffisant pour vous emmener partout dans n'importe quelle langue qui les utilise.
Les auteurs du livre sont Kernighan et Pike, le titre est quelque chose comme "The Unix Programming Environment".
Le livre que j'ai réellement appris s'appelait "Une introduction à Berkeley Unix".
Si vous voulez en apprendre un sur ces 3 (grep, sed et awk), vous pouvez simplement apprendre awk/gawk. . awk peut faire les fonctions de grep et sed, c'est-à-dire utiliser regex pour rechercher/remplacer du texte, et bien plus encore car c'est aussi un langage de programmation. Si vous apprenez l'intérieur de gawk/awk, vous n'aurez pas besoin d'utiliser grep/sed/wc/cut etc. Un seul outil suffit.
À mon avis, awk est plus ou moins obsolète (cependant, d'autres soutiendront fortement cette opinion), la plupart des gens que je connais de nos jours utilisent plutôt un langage de script comme Perl ou aujourd'hui souvent python pour la manipulation de texte avancée . sed est idéal pour les tâches de manipulation de texte plus simples, je l'utilise tout le temps. Je l'ai appris principalement en regardant sed one-liners comme ceux de http://sed.sourceforge.net/sed1line.txt =. Concernant grep: Eh bien, vous voulez essentiellement avoir une bonne compréhension des expressions régulières (également nécessaires pour sed) .Je viens ici d'utiliser les manuels de texinfo.