我一直在学习新的工具,甚至是老式的工具,因为我喜欢用正确的方法来解决这个问题。
然而,我不知道是否还有任何理由去学习其中的一些。例如,awk对我来说很有趣,但是对于简单的文本处理,我可以使用grep、cut、sed等等,而对于复杂的文本处理,我将使用Python。
现在我并不是说这不是一个强大和方便的工具。但是,由于学习一个新工具需要时间和精力,值得吗??
发布于 2008-09-20 08:31:51
我认为这取决于你所处的环境。如果你是一个*nix的人,那么了解awk是一件好事。在几乎每个*nix上都可以找到的唯一其他脚本环境是sh。因此,虽然grep、sed,等在现代主流linux发行版上肯定可以取代awk,但当您转向更有异国情调的系统时,了解一点awk将是非常方便的。
awk还可以用于不仅仅是文本处理。例如,我的一位主管用awk编写天文学代码--这就是他的老派和了不起之处。在他的时代,这是最好的工作工具.现在,即使他的学生像我一样使用python和什么不使用,他仍然坚持他所知道的,并很好地工作。
最后,世界上有很多老代码,知道一点awk不会有什么坏处。它也会让你变得更好*-)
发布于 2009-03-31 21:38:15
如果您快速学习awk的基础知识,那么您确实可以在命令行上做一些令人惊奇的事情。
但是,学习awk的真正原因是有理由阅读阿赫、凯尔尼根和温伯格的精湛的书“AWK编程语言”。
你会认为,从名字上看,它只是教会了你知识。实际上,这只是个开始。一旦使用了一种简洁的脚本语言,使字符串操作变得容易--而awk是第一个问题之一,就可以着手解决大量的问题--它继续教读者如何实现数据库、解析器、解释器,以及(如果内存满足我的话)小型项目专用计算机语言的编译器!如果他们还用awk编写了一个示例操作系统的话,这本书将是计算机科学的一个相当完整的调查介绍!
著名的清晰和简洁,就像原来的C语言书,它也是一个很好的例子友好的技术写作做了正确的。即使是指数也是一项技艺。
Awk?如果您知道的话,您会偶尔在命令行使用它,但是对于更大的部分,您会感到被困住了,无法访问您的系统和Internet的更广泛的特性,比如Python提供的访问权限。但那本书?你一定会很高兴你读到的!
发布于 2008-09-20 08:28:14
我使用awk的唯一原因是自动拆分:
awk '{print $3}' < file.in这将在file.in中打印第三个空格分隔的字段。这比:
tr -s ' ' < file.in | cut -d' ' -f3https://stackoverflow.com/questions/107603
复制相似问题