BASH脚本和AWK之间的区别

8

BASH脚本和AWK有什么区别?

在什么情况下我会选择其中之一?


2
awk是一个shell命令。你不能在没有shell的情况下使用它。 - andrew
4
@andrew - awk是一个可执行文件。你可以在不调用shell的情况下从程序中调用它。对于刚开始编写shell脚本的人来说,很容易混淆哪些是shell内置命令的尽头。 - user559633
2
@shekharsuman 你误解了。这个要点是一个strace作为证据。请注意,调用awk不会导致shell被调用:https://gist.github.com/tristanfisher/e88f2c2a0cacf0ee5a81 - user559633
2
一个 shell 只是一个环境,用于调用工具,并带有一种关联的编程语言,让您可以按顺序执行这些调用。Awk 是处理文本文件的标准 UNIX 工具。 - Ed Morton
2个回答

5

我认为你所指的bash脚本是指执行所有操作的通用脚本。

但是,awk基本上是一个独立的工具,可以独立调用,甚至不需要调用bash shell(或任何shell)!正如tristan所提到的,它是一个独立的工具!

bash脚本用于使用shell执行任何类型的操作!实际上,您可以通过其他过滤器甚至grep regex直接在bash脚本中实现awk可以实现的任何操作。另外,您还可以执行许多其他无法通过awk实现的操作!

awk是一个优秀的过滤器和报表编写工具。许多UNIX实用程序生成行和列的信息。 AWK是处理这些行和列的优秀工具,并且比大多数传统编程语言更容易使用AWK。它可以被认为是一个伪C解释器,因为它理解与C相同的算术运算符。 AWK还具有字符串操作函数,因此它可以搜索特定字符串并修改输出。 AWK还具有关联数组,这非常有用,并且是大多数计算机语言缺少的功能。


以上答案中最后一段的来源:https://www.cse.iitb.ac.in/~br/courses/cs699-autumn2013/refs/awk-tutorial-bruce-barnett.html。 - Am_I_Helpful
链接断开...... - Pacerier

5

Awk是另一个可以轻松从Bash脚本中调用的工具。

当您需要过滤数据并且Bash内置函数无法(或不易)满足您的需求时,您可以调用awk。您可以使用Bash定义逻辑流程,并使用像sedawk这样的工具来操作数据或执行任务。Awk非常擅长从文件中过滤数据。

值得一提的是,我从未听说过有人认为脚本因为调用了Awk而不是“Bash脚本”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接