什么可以awk做那个sed不能?

Nik*_*ntz 5 awk sed turing-complete

我使用sed作为批处理ptovess,我用awk无法做到这一点.vould awk已经做到了吗?或者它是一个选择问题,并调用awk和sed等效的用法.它们都使用与i/o类似的常见搜索替换.是否有一个很好的例子,另一个可以用一个不能做的事情?

Tyl*_*nry 9

一个主要区别是awk程序可以维护状态,并且可以使用相同数据的多次传递来操作.sed调用必然是无状态单遍,因为sed(Stream EDitor)本质上是面向流的.但优点是,这使得sed更简单,更适合在管道中使用.

  • 我没有看到sed"更适合在管道中使用" - 只是因为awk CAN执行多次传递,没有什么能迫使你实际这样做.对于许多与管道相关的任务(例如,选择特定字段),awk比sed使用起来要简单得多. (2认同)

小智 7

在最初的(也是最好的)书中,AWK编程语言,实现了以下内容(以及许多其他内容):

  • 一个简单的汇编程序
  • 递归下降编译器
  • 文本索引程序

尝试使用sed.

  • 我认为这是一个完全不同的问题的答案.问题是"什么是awk不能用于什么样的sed?",而不是"awk能做什么不能做什么".只是说"awk更好,更强,更快"并不能回答这个问题. (2认同)