Je suis un utilisateur de Linux depuis un certain temps et je comprends assez bien la plupart des utilitaires de ligne de commande courants. Cependant, ceux qui se présentent et de nouveau par rapport à la programmation sont grep
, awk
et sed
.
La seule chose pour laquelle j'ai utilisé grep, c’est d’y ajouter des trucs pour trouver les fichiers dans les fichiers journaux, la sortie de ps
etc. que je n’ai pas utilisés awk
ou pas sed
du tout. Existe-t-il de bons tutoriels pour ces utilitaires?
grep
,sed
etawk
fait (et presque de la même manière) et bien plus encore.man
page habituelle qui donne 90% de notes de bas de page.Réponses:
AWK est particulièrement bien adapté aux données tabulaires et a une courbe d'apprentissage inférieure à celle de certaines alternatives.
AWK: tutoriel et introduction
Une introduction à AWK ( lien alt )
RegularExpressions.info
tutoriel sed
tutoriel grep
info sed
,info grep
Etinfo awk
ouinfo gawk
la source
Le livre O'Reilly sed and awk est idéal pour les applications les plus en demande.
la source
J'ai écrit un livre sur
sed
- Definitive Guide to sed - qui comprend un tutoriel. Elle couvre entièrementsed
, ainsi que les commandes connexes commegrep
,tr
,head
ettail
. Couvre également pleinement les expressions régulières bien mieux que ce que j’ai vu ailleurs.Je conviens avec d’autres que la compréhension des expressions régulières est très importante. Je conviens également qu'il
sed
vaut mieux utiliser des tâches plus simples, car des scripts plus complexes deviennent rapidement obscurs.Je ne suis pas d'accord sur le fait que ce
awk
soit obsolète, au contraire. C'est comme beaucoup de choses Unix (par exemplevi
), il y a une courbe d'apprentissage, mais ça en vaut la peine.Je ne suis pas d'accord avec la suggestion d'utiliser
awk
à la place degrep
. Cela n'a pas de sens dans mon expérience.grep
est si simple et génial.la source
grep
chose - vous ne prenez pas le tracteur sur l'autoroute si vous pouvez l'aider. Et c'est un très bon livre aussi - merci.Le livre de recettes des expressions régulières publié par O'Rielly serait suffisant pour vous emmener n'importe où dans la langue qui les utilise.
la source
Les auteurs du livre sont Kernigan et Pike, le titre est quelque chose comme "L'environnement de programmation Unix".
Le livre que j'ai appris s'appelle "Une introduction à Berkely Unix".
la source
Si vous voulez en apprendre un sur ces 3 (grep, sed et awk), vous pouvez simplement apprendre awk / gawk. . awk peut exécuter les fonctions de grep et de sed, c'est-à-dire utiliser regex pour rechercher / remplacer du texte, et bien plus encore, car il s'agit également d'un langage de programmation. Si vous apprenez les secrets de gawk / awk, vous n'aurez pas besoin d'utiliser grep / sed / wc / cut, etc. Un seul outil suffit.
la source
g++ -x c++ - -o /tmp/prog && /tmp/prog
et taper vos commandes. Un outil pour les gouverner tous! :-)À mon avis, awk est plus ou moins obsolète (cependant, d’autres argumenteront fortement cette opinion), la plupart des gens que je connais aujourd’hui utilisent à la place un langage de script tel que 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 simples, je l’utilise tout le temps. Je l’ai surtout appris en regardant des one-liners sed comme ceux de http://sed.sourceforge.net/sed1line.txt . En ce qui concerne grep: Eh bien, vous souhaitez acquérir une solide compréhension des expressions régulières (également nécessaires pour sed). Je viens ici d'utiliser les manuels texinfo.
la source
awk '{print $3}'
.dpkg -l
sortie. Je ne ferais rien de compliqué à distance là-dedans, mais je serais un outil court sans me faire mal. Je ne peux pas en dire autant pour les langages de programmation plus généraux, même si certains me plaisent.