He sido un usuario de Linux por un tiempo, y tengo una comprensión bastante decente de la mayoría de las utilidades de línea de comandos comunes. Sin embargo, los que vienen hacia arriba y de nuevo en relación con la programación son grep
, awk
y sed
.
Para lo único que he usado grep es para canalizar cosas en él para encontrar archivos en archivos de registro, la salida de ps
etc. No he usado awk
o sed
nada. ¿Hay buenos tutoriales para estas utilidades?
grep
,sed
yawk
hace (y casi de la misma manera) y mucho más.man
página habitual que se siente como 90% de notas al pie.Respuestas:
AWK es particularmente adecuado para datos tabulares y tiene una curva de aprendizaje más baja que algunas alternativas.
AWK: un tutorial e introducción
Un AWK Primer ( enlace alternativo )
RegularExpressions.info
tutorial de sed
tutorial grep
info sed
,info grep
Yinfo awk
oinfo gawk
fuente
El libro O'Reilly sed and awk es ideal para er sed y awk.
fuente
Escribí un libro sobre
sed
- Guía definitiva para sed - que incluye un tutorial. Se cubre totalmentesed
, así como los comandos relacionados, comogrep
,tr
,head
ytail
. También cubre completamente las expresiones regulares mucho mejor de lo que he visto en otros lugares.Estoy de acuerdo con otros en que es muy importante comprender bien las expresiones regulares. También estoy de acuerdo en que
sed
se usa mejor para tareas más simples, los scripts más complejos se vuelven oscuros rápidamente.No estoy de acuerdo con que
awk
sea obsoleto, todo lo contrario. Es como muchas cosas de Unix (por ejemplo,vi
), hay una curva de aprendizaje, pero vale la pena.No estoy de acuerdo con la sugerencia de usar
awk
en lugar degrep
. No tiene sentido en mi experiencia.grep
Es genial y simple.fuente
grep
secundo: no puedes tomar el tractor en la autopista si puedes evitarlo. Y también es un libro bastante bueno, gracias.El Libro de cocina de expresiones regulares publicado por O'Rielly sería suficiente para llevarlo a cualquier parte en cualquier idioma que los use.
fuente
Los autores del libro son Kernigan y Pike, el título es algo así como "El entorno de programación de Unix".
El libro del que realmente aprendí se llamaba "Una introducción a Berkely Unix".
fuente
Si va a aprender uno de estos 3 (grep, sed y awk), puede aprender awk / gawk. . awk puede hacer las funciones de grep y sed, es decir, usar expresiones regulares para buscar / reemplazar texto, y mucho más porque también es un lenguaje de programación. Si aprende los detalles de gawk / awk, no necesitará usar grep / sed / wc / cut, etc. Solo una herramienta lo hace.
fuente
g++ -x c++ - -o /tmp/prog && /tmp/prog
y escribir tus comandos. ¡Una herramienta para gobernarlos a todos! :-)En mi opinión, awk es más o menos obsoleto (sin embargo, otros discutirán enérgicamente esta opinión), la mayoría de las personas que conozco hoy en día usan un lenguaje de script como Perl o Python para la manipulación avanzada de texto. sed es ideal para tareas de manipulación de texto más simples, lo uso todo el tiempo. Lo aprendí principalmente mirando sed one-liners como los de http://sed.sourceforge.net/sed1line.txt . Con respecto a grep: Bueno, básicamente desea obtener una comprensión sólida de las expresiones regulares (también necesarias para sed). Acabo de usar los manuales de texinfo.
fuente
awk '{print $3}'
.dpkg -l
salida. No haría nada remotamente complicado, pero sería una herramienta corta sin awk. No puedo decir lo mismo para lenguajes de programación más generales, por mucho que me gusten algunos de ellos.