是否有针对grep,awk和sed的基本教程?[关闭]


95

我已经有一段时间使用Linux了,并且对大多数常见的命令行实用程序都有相当不错的了解。然而,那些上来,再次相对于编程是grepawksed

关于我使用grep的唯一一件事就是将内容传送到其中以在日志文件中查找文件,psetc 的输出。我没有使用过awk或根本没有使用sed过。这些实用程序有什么好的教程吗?



我一直推迟学习正则表达式,因为我告诉自己,有一天我会通过阅读Kleene关于逻辑的原始论文来学习它,然后发明了该概念,然后在计算机中广泛使用。
ixtmixilix

我同意gvkv的观点:如果您需要学习这些知识,则不妨学习Perl,它可以做什么grepsed并且awk可以(几乎以相同的方式)完成很多工作。
reinierpost

我一直喜欢thegeekstuff.com。它们直接切入示例,与通常使用man90%脚注的页面相反。
同构

Answers:



19

O'Reilly的sed和awk书非常适合er sed和awk。


11

我写了一本书sed- 权威指南sed的 -即包括教程。它完全覆盖sed,以及像相关的命令greptrheadtail。还完全涵盖了正则表达式,比我在其他地方看到的要好得多。

我同意其他人的观点,即扎实理解正则表达式非常重要。我也同意,sed最好将其用于更简单的任务,更复杂的脚本会很快变得晦涩难懂。

我不同意那awk是过时的,恰恰相反。就像许多unix事物(例如vi)一样,有一个学习曲线,但这是值得的。

我不同意使用awk代替的建议grep。根据我的经验,这没有任何意义。grep非常简单


我第二grep件事-如果可以的话,不要把拖拉机拖到高速公路上。这也是一本非常不错的书-谢谢。
mikeserv

3

O'Rielly出版的《正则表达式食谱》足以使您以使用它们的任何语言到达任何地方。


3

该书的作者是Kernigan和Pike,标题类似于“ Unix编程环境”。

我实际上从那本书中学到的书叫做“ Berkely Unix入门”。


2

如果要从这3个(grep,sed和awk)中学习一个,就可以学习awk / gawk。。awk可以执行grep和sed的功能,即使用正则表达式来搜索/替换文本,以及更多功能,因为它也是一种编程语言。如果您了解gawk / awk的内在知识,则无需使用grep / sed / wc / cut等。只需使用一种工具即可。


哦,顺便说一句,我们甚至不需要awk,您只需使用g++ -x c++ - -o /tmp/prog && /tmp/prog并键入命令即可。一种统治所有人的工具!:-)
Lie Ryan

1
当您只需将二进制文件直接写入文件时,谁需要编译器?如果您感到懒惰,cat会做,或ed。
cas

1

在我看来,awk或多或少已经过时了(不过,其他人会强烈反对这种观点),如今我认识的大多数人都使用诸如perl或今天的python之类的脚本语言来进行高级文本操作。sed非常适合执行简单的文本操作,我一直都在使用它。我主要是通过查看sed单行代码(例如http://sed.sourceforge.net/sed1line.txt)来学习它的。关于grep:好吧,您基本上希望对正则表达式有一个扎实的了解(sed也需要)。我在这里只是使用了texinfo手册。


10
对于处理从其他命令管道传输的数据,awk仍然非常有用。对于简单的命令行用法,我不会认为它已经过时了。
MaQleod

而且由于POSIX,它应该在许多系统上都可用。
echox 2010年

1
大多数“高级AWK”可能最好用perl或python或其他任何东西来完成,但是简单的东西仅用awk即可完成。
user455 2010年

1
在尝试解决问题时,Awk仍然有助于了解您可能在网上找到的各种答案。您经常会在网上找到使用awk语句的示例,例如awk '{print $3}'
史蒂文D

1
在工作中和在家中,我经常使用awk,然后使用sed。在固定的表格数据(如dpkg -l输出)上,awk不能胜过awk 。我不会做任何复杂的事情,但是如果没有awk,我会简而言之。对于更通用的编程语言,我不能说相同的话,尽管我喜欢其中的一些。
JM Becker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.